产生异步执行javascript

时间:2015-12-06 02:54:27

标签: javascript node.js asynchronous call asynccallback

我想用代码说明问题:

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?完成默认进程和完成回调需要两个异步函数。

感谢。

1 个答案:

答案 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来完成。承诺是一样的想法,只是略有不同。