我目前正在开发一个项目,其中同时触发 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/