javascript - Javascript 或 jQuery 中的线程安全队列

标签 javascript jquery ajax jquery-events

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

执行此操作的最佳方法是什么?我正在使用 jQuery,很高兴利用它为此提供的任何功能。

最佳答案

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

像 Javascript 这样的事件驱动语言是在队列的基础上运行的。后台的 Javascript 本质上有一个巨大的队列,事件和异步响应被插入其中。完成特定的处理后,将处理队列中的下一项。

这些队列有时被称为“Runloops”。 Javascript 将进入无限循环,从队列中检索事件、处理它,然后返回队列以进行另一项工作。

多线程可以在(较新的)Javascript 版本中使用 Web Workers 实现,但这些都是明确选择加入的。如果您有兴趣,请查找它们。

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

关于javascript - Javascript 或 jQuery 中的线程安全队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4711423/

相关文章:

javascript - 未捕获的类型错误 : number is not a function

javascript - 将作用域从一个函数传递到另一个函数

javascript - 使 'dropdown-content' 与 paper-dropdown-menu 的宽度相同?

javascript - 条件形式取决于选择列表中的答案不起作用

javascript - 如何调试通过 AJAX 调用添加到 DOM 中的 JS 代码?

c# - 验证驾驶执照号码?

javascript - 401 使用 POST 方法 API 身份验证失败

Javascript:onclick 函数工作一次然后页面恢复到原始状态

向我的 Node 服务器发送 AJAX 请求 - 未通过

php - 开发 API - 如何使其安全?