javascript - 带有 promise 的链接 jQuery AJAX

标签 javascript jquery ajax

我目前正在开发一个项目,其中同时触发 4 个 get 请求。我同时使用淡入淡出效果,其异步特性会导致间歇性出现空数据。

我一直在研究这种方法,如中所述 Prefer way of doing multiple dependent ajax synchronous call取代我目前的做法

$.get('ajax_call_1').then(function(value) {
    return $.get('ajax_call_2');
}).then(function(result) {
    // success with both here
}, function(err) {
    // error with one of them here
});

但是,我的问题是:如何使用上述内容单独访问每个请求的返回结果?

最佳答案

您说过请求是同时发送的。不过,按照您编写代码的方式,它们是按顺序发送的。相反,使用 Promise.all ,您可以等待所有请求的 promise ,您将获得一个包含结果的数组:

Promise.all([
    $.get('ajax_call_1'),
    $.get('ajax_call_2'),
    $.get('ajax_call_3'),
    $.get('ajax_call_4')
]).then(function(results) {
    var first = results[0];
    var second = results[1];
    ...
}).catch(function(err) {
    // called if one of the requests fails
});

关于javascript - 带有 promise 的链接 jQuery AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47248205/

相关文章:

jquery - 除了我的鼠标悬停在什么地方,有没有办法可以对所有东西应用模糊?

javascript - 如何计算for循环内ajax响应数据集的总数?

javascript - 什么是 Ember.bind 以及它是如何工作的?

php - 谷歌可视化 API php ajax

javascript - 范围变量也会在更改时更新非范围变量

jquery - 如何使用 jQuery 从外部页面加载内容?

javascript - 更改切换开关上的网址

jquery - jquery off/unbind 等是否递归地将所有事件分离到当前选择器和子级?

jquery - ajaxComplete多次触发

javascript - 使用ajax清空(val)html字段并在数据库中的该字段中输入下一个值