我在 JavaScript 中进行了许多异步调用。我想确保任何时候只有一个异步调用正在进行。我怎样才能实现这个目标?
Q 库是否公开了与此相关的内容?
最佳答案
这取决于您是想保留所有调用还是放弃飞行途中调用的任何调用。
如果要保留所有调用,则不应直接进行 Ajax 调用,而应将它们放入队列中。然后,队列抽象将负责进行 Ajax 调用,使用锁变量来检查调用是否已经在进行中。当收到 Ajax 调用或超时时,它可以触发队列来检查任何待处理的调用,以便可以触发下一个调用。
如果你想放弃在飞行中调用的电话,一个简单的锁定机制就可以了。对于任何调用,只需检查锁是否为 true,如果不是,则触发请求并将锁设置为 true。如果锁为真,则不执行任何操作(丢弃它)。当收到调用或超时时清除锁定。
关于javascript - 限制 JavaScript 中的 "in-flight"异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741491/