yao*_*ing 6 javascript node.js
说我有2种方法:
function A(callback) { ... }
function B(callback) { ... }
Run Code Online (Sandbox Code Playgroud)
我想执行:
function C();
A和B都完成后.
我们通常做的是将函数C放在回调中,如:
A(function() {
B(function() {
C();
});
});
Run Code Online (Sandbox Code Playgroud)
现在如果A和B都需要很长时间,我不希望B在A完成后执行.相反,我想同时启动它们以提高性能.
我在想的是实现类似信号量的东西(当然不是真正的信号量),它会在A和B都完成后触发事件.这样我就可以在活动中打电话给C.
我想知道的是,是否有任何库已实现上述功能?我相信我不是第一个想要这样做的人.
任何帮助表示赞赏.
扩展我的评论......
它async.parallel()
可能会做得很好:
async.parallel([
function(done) {
A(function () {
done(null);
});
},
function(done) {
B(function () {
done(null);
});
}
], function (err) {
C();
});
Run Code Online (Sandbox Code Playgroud)
这可能会缩短,但这取决于每个函数如何与回调交互,以及它们是否遵循error
-first回调的常见Node.js模式:
async.parallel([A, B], C);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15461 次 |
最近记录: |