如何确定何时完成多个回调

时间:2013-08-09 15:36:15

标签: javascript events asynchronous

我正在寻找一个纯粹的JS解决方案。请不要添加库。

我有一个发出XMLHttpRequest指定标准异步操作的函数。

如果我调用此函数,说5次,一个接一个,我设置了5个回调代码。由于JS是一个单独的线程,JS必须弄清楚如何切片和切块可用的CPU周期,以允许我的所有5个回调执行完成。没有人知道什么时候会发生,并且没有回调可以依赖其他回调正在进行的任何事情。

如果我需要等到我的所有5个回调都完成执行,我该如何检测这个不存在的“事件”?

我不是在寻找一种依赖于将事物链接在一起的解决方案。我想知道是否有可能创建一个可以触发的实际事件基础结构来创建一个可以监听的事件。

1 个答案:

答案 0 :(得分:2)

这样做的一种方法是在每个原始回调返回时增加某种计数器。这基本上是async库处理它的方式:https://github.com/caolan/async/blob/master/lib/async.js#L101