0

什么更快:

Event.once('some_event', function() { // wait until an event fired from somewhere
  defer.resolve('resolved')
})
...
// somewhere else
Event.emit('some_event')

或类似:

defer = doSmthDeferred(); // to get the deferred resolved/rejected from somewhere else
...
// somewhere else
doSmthDeferred = function() {
  defer
  if ...
    defer.resolve();
  else
    defer.reject();
}

即:什么是更好的 - 事件处理或嵌套承诺/延迟处理?承诺/延迟是否基于事件处理?

4

1 回答 1

1

这几乎是一个红鲱鱼。事件和承诺解决之间的速度差异几乎总是很小。

事件是为经常发生的事情而设计的。例如,请求到达网络服务器或用户单击按钮。当您将它们用于异步操作时,它们会变得混乱,因为它们不能正确支持组合,即很难等待两个事件都发生 Promise 是为异步操作而设计的(例如从服务器请求网页)。它们只能解决一次,因此不适合事件之类的事情。如果您有多个并行或串行发生的异步操作,则 Promise 使组合它们变得非常容易。如果您正在寻找一个好的承诺库,我建议您查看Q

于 2013-03-09T13:29:15.997 回答