我的问题是:“如何在所有异步函数完成工作后运行回调”
这里有一个例子:
function doTasks(**callback**) {
doTask1(function() {
...
});
doTask2(function() {
...
});
}
我不想一个接一个地运行一个任务。并行运行它们的想法,但我需要在完成后立即进行回调。nodeJs 有内置功能吗?
现在我正在使用 EventEmitter 和计数器的组合。每次任务完成时,它都会运行一个事件。因为我知道已经运行了多少任务。我可以数数并发出回调。但必须采用更灵活的方式。这是我现在使用的。
var EventEmitter = require("events").EventEmitter;
var MakeItHappen = module.exports = function (runAfterTimes, callback) {
this._aTimes = runAfterTimes || 1;
this._cTimes = 0;
this._eventEmmiter = new EventEmitter();
this._eventEmmiter.addListener("try", callback);
}
MakeItHappen.prototype.try = function () {
this._cTimes += 1;
if (this._aTimes === this._cTimes) {
this._cTimes = 0;
this._eventEmmiter.emit("try", arguments);
}
}
还有另一种方法吗?