Eve*_*ert 7 javascript language-agnostic events
这主要是与语言无关的问题.
如果我正在等待两个事件完成(例如,两个IO事件或http请求),那么处理此问题的最佳模式是什么.我能想到的一件事是以下(伪js例子).
request1.onComplete = function() {
req1Completed = true;
eventsCompleted();
}
request2.onComplete = function() {
req2Completed = true;
eventsCompleted();
}
eventsCompleted = function() {
if (!req1Completed || !req2Completed) return;
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这是最有效的模式,还是有更优雅的方法来解决这个问题?
在深入讨论细节之前,我想到了一些利用 lambda 函数的巧妙方法:
function makeCountdownCallback(count, callback) {
return function() {
if (--count == 0)
callback();
};
}
request1.onComplete = request2.onComplete = makeCountdownCallback(2, function() {
// do stuff
});
Run Code Online (Sandbox Code Playgroud)
这显然假设每个事件最多触发一次,并且不利用顺序。
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |