当前位置: 首页 > 面试题库 >

等到jquery ajax请求列表完成?

施锋
2023-03-14
问题内容

但是我的问题是不对的:

我正在执行许多ajax请求,并将它们保存在数组中:

var events = [];

for(var i = 0; i < 10; ++i) {
    events.push($.ajax({...}));
}

$.when(events).done(function() {
   // do something when all requests are done.
});

正如相关问题所表明的那样,$ .when方法 按顺序 接受 一些jqXHR对象,但是在这里我要 列出它们的清单

我在http://api.jquery.com/jQuery.when/#jQuery-when-
deferreds中
阅读了文档,但是该方法似乎不支持这种情况(将jqXHRto 列表传递给$.when函数)

怎么会这样?请帮助。


问题答案:

您需要将promise作为参数列表(如$.when(promise1, promise2, promise3))传递给$
.when()
,而不是作为数组传递,因此请使用Function.apply()。

$.when.apply($, events).then(function() {
   // do something when all requests are done.
});


 类似资料:
  • 问题内容: 在Bash中,可以通过追加在后台执行命令。如何在Python中完成? 问题答案: 我用。我在模块级别创建一个单例线程池,然后用于启动任务。 该命令给了我一个未来,我可以将它无限期地与其他未来添加到列表中,直到我想收集全部或部分结果为止。 出于所有逻辑和理由,是一个THREAD池而不是一个进程池。 示例(只要安装了请求,就可以在Python 2和3中使用): 这些请求将同时执行,因此运行

  • 问题内容: 我如何让一个函数等到所有jQuery Ajax请求都在另一个函数中完成之后? 简而言之,在执行下一个请求之前,我需要等待所有Ajax请求完成。但是如何? 问题答案: jQuery现在为此目的定义了一个when函数。 它接受任意数量的Deferred对象作为参数,并在它们全部解析后执行一个函数。 这意味着,如果您要发起(例如)四个ajax请求,然后在完成后执行操作,则可以执行以下操作:

  • 问题内容: 我有该代码: 它可以很好地上传图像,但是问题是我找不到一种逐一上传图像的方法,我试图将 async 选项 设置为false, 但是它冻结了网络浏览器,直到所有图像都被上传为止,这不是我所需要的。想要,我想以某种方式模拟此 “ async:false” 选项以执行相同的操作,但不冻结Web浏览器。 这该怎么做 ? 问题答案: 您可以创建一个Promise数组,以便在所有Promise都解

  • 问题内容: 我希望浏览器将页面保持打开状态,直到发送ajax请求为止。这就是我想像的样子 不幸的是,JS不执行多线程。据我了解,回调(ajaxFinished)将永远不会执行,因为浏览器将尝试等待while循环完成以执行它,因此,它将永远循环。 什么是正确的方法?也许有一种方法可以迫使JS评估待办事项列表中的下一件事,然后返回while循环?还是一些与ajax调用“联接”的语法?我正在为我的aja

  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ

  • 问题内容: 我正在测试Redis的“全双工”通信,如此处所示,并阅读了文档,我认为以及都有一个客户端池,因此能够并行处理多个MQ消息。 但是,在Github上的测试项目中,在我看来并非如此,或者我缺少了一些东西。该解决方案包括: EventPublisher:.NET Core WinForms应用程序,用于将Hello DTO发布到MQ EventConsumer:具有用于处理Hello DTO