Javascript或jQuery中的线程安全队列

我有许多异步AJAX调用,其结果将得到处理。处理的顺序并不重要,但结果需要一次处理一个。所以我想简单地进行AJAX调用,它们都将结果放在一个队列中。然后,该队列应该在单个线程上得到处理。这样一来,结果会尽快一次处理一个

最好的方法是什么?我正在使用jQuery,所以很乐意利用它为此提供的任何功能

异步并不意味着“多线程”。在处理第一个单击处理程序之前,考虑一行中触发的许多单击事件。一次只能处理一个操作,其他操作将等待执行

事件驱动语言(如Javascript)基于队列进行操作。背景中的Javascript实际上有一个巨大的队列,事件和异步响应被推送到其中。一旦某个特定的处理完成,队列中的下一个项目将被处理

这些队列有时称为“运行循环”。Javascript将在一个无休止的循环中旋转,从队列中检索事件,处理它,然后返回队列进行另一项工作

使用Web Workers可以在(较新)版本的Javascript中实现多线程,但这些都是显式的opt-in。如果你感兴趣的话,可以查一下

要回答您的问题,只需将回调附加到异步请求,即使在中途返回另一个响应,它也将完成处理。另一个响应将“等待”,直到当前事件得到处理

发表评论