【发布时间】:2015-01-04 04:32:18
【问题描述】:
我想知道,您将如何使用 node.js' async 模块实现屏障?
我想我应该使用一个函数来向调用者返回由async 生成的回调列表。在所有这些都被调用后,将运行 finish 回调。
但是async 的哪些功能可能有帮助?
【问题讨论】:
标签: javascript node.js asynchronous concurrency barrier
我想知道,您将如何使用 node.js' async 模块实现屏障?
我想我应该使用一个函数来向调用者返回由async 生成的回调列表。在所有这些都被调用后,将运行 finish 回调。
但是async 的哪些功能可能有帮助?
【问题讨论】:
标签: javascript node.js asynchronous concurrency barrier
不确定我是否正确理解了您的问题。但是您可以使用 async.series。它将运行指定的一系列函数(一个接一个) 然后在所有函数执行完毕后最后调用你指定的最终回调
您可以使用迭代器回调(cb),它可以在每个函数的任务回调中调用。 您可以指定数组中的函数列表,它们将按顺序执行
async.series([func1,func2],finalcallback);
async.seres([
function(cb) {
db.find('likes', function(err, likes) {
dosomething with likes;
cb();
});
},
function(cb) {
db.load('posts_likes', function(err, likes_posts) {
dosomething with likes_posts;
cb();
});
}
], function(err) {
This is the final callback that gets called after all the task function callbacks are executed
});
【讨论】: