如何从jQuery中的$ .when解析多个promise对象中的数据?
问题描述:
假设我们只有一个承诺对象,如下所示。
var myPromise = $.get(url1);
myPromise.done(function(data){
console.log(data);
});
我们能够从承诺对象访问数据。现在假设,我们已经通过$。当
var multiplePromises = $.when($.get(url1),$.get(url2),$.get(url3));
multiplePromises.done(function(){
});
解决多个承诺对象的上述要求已得到满足,也就是说,只有当所有的GET请求完成后,做了一部分应该得到执行。但是,如何从$ .when.done()方法中分别得到来自每个get的数据响应?
答
您将它们作为参数。
function get(what) {
return $.when(what)
}
$.when(get(1), get(2), get(3)).done(function(first, second, third) {
console.log(first, second, third)
})
<script src="https://unpkg.com/[email protected]/dist/jquery.js"></script>
你阅读[文件](https://api.jquery.com/jQuery.when/)? *“传递给doneCallbacks的参数为每个Deferreds提供解析值,并将Deferreds传递给jQuery.when()的顺序进行匹配。” –