Chained jQuery AJAX with promise



>我目前正在研究一个同时触发 4 个 get 请求的项目。我同时使用淡入淡出效果,其异步性质导致间歇性地产生空数据。

我一直在研究这种方法,如中所述更喜欢执行多个依赖 ajax 同步调用的方式来替换我目前所做的方式

$.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.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
});

最新更新