>我目前正在研究一个同时触发 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
});