async是一个 JavaScript类库,它的目的是解决 JavaScript中异常流程难以控制的问题。
async不仅在 Node. js里适用,还可以用在浏览器中。其常用方法和用法如下。
具体代码如下所示:
css
var async = require('async ');
var date = Date .now ( );
(1) async. parallel:并行执行完多个函数后,调用结束函数。不用等到前一个函数。执行完再执行下一个函数。
javascript
async .parallel ( [
function ( callback ) {
setTimeout (function () {
console. log('process one', Date. now ( ) - date)
callback(null, 'msg one')
},2000)
},
function ( callback ){
setTimeout ( function () {
console. log('process tow', Date .now ( ) - date )
callback ( null, 'msg tow' )
},1000)
}
], function(err, result){
console. log(err, result, 'done ')
})
(2) async.series:串行执行完多个函数后,调用结束函数。前面一个函数执行完之后,就会立即执行下一个函数。
javascript
async .series ( [
function ( callback ) {
setTimeout ( function () {
console. log ( 'process one ', Date. now ( ) - date )
callback ( null, ' msg one' )
},2000 )
},
function ( callback ) {
setTimeout ( function () {
console. log ( 'process tow', Date. now ( ) - date )
callback ( null, 'msg tow ' )
},1000 )
}
] , function (err, result ) {
console. log(err, result, 'done')
})
(3) async. waterfall:依次执行多个函数,前一个函数的执行结果作为后一个函数执行时的参数。
javascript
async .waterfall ( [
function ( callback ) {
setTimeout ( function () {
console. log('process one, Date. now()- date)
callback(null, 'msg one')
},2000)
},
function(argl, callback){
setTimeout (function(){
console. log('process tow, Date. now ( ) - date, argl )
callback(null, 'msg tow')
},1000)
}
] , function(err, result){
console. log(err, result, 'done ')
})
THE END
暂无评论内容