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

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

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

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

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

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

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

点赞