我想用代码说明问题:
var async1 = f1(params, cb);
var async2 = f2(params, cb);
现在我可以通过瀑布异步过程调用async1,如下所示:
async.waterfall([
function(cb){
async1(params, cb);
async2(params, cb);
},
//default process
function(result, cb){
//some code here and then
cb(null, result);
}
], done);
我的问题是我如何等待async1
完成done
回调,以便致电async2
。这两个任务都需要运行默认进程和完成回调。
如果有可以运行async1
的方式/设计模式,并且在完成后我可以在同一个瀑布异步函数中运行async2
?完成默认进程和完成回调需要两个异步函数。
感谢。
答案 0 :(得分:1)
您可以使用回调函数来完成此操作。请考虑以下事项:
// When you're defining this function, give it a callback parameter
function async1(params, cb, callback){
...
// Call the callback function when this process is complete
callback();
}
...
// Then call your functions something like this
async1(params, cb, function(){
async2(params, cb);
});
这也可以使用Promises来完成。承诺是一样的想法,只是略有不同。