我得到堆棧的問題: 「如何運行的回調畢竟異步函數完成自己的工作」如何在所有並行功能運行完成他們的工作時運行回調?
下面的例子:
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);
}
}
有沒有另一種方法呢?