4

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

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

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

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

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

4

1 回答 1

2

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

于 2013-08-09T15:41:02.560 回答