我正在使用jquery并有两个变量。
trackFeatures-单个ajax请求,artistRequests-ajax请求数组
当trackFeatures和artistRequests完成时,我想做些事情。对于仅artistRequests,我可以执行以下操作:
$.when.apply($, artistRequests).done(function() { ... }
有没有一种方法可以将单个请求与数组请求结合在一起?除了将单个请求添加到数组或顺序测试它们。
谢谢
最佳答案
引用此link和示例:
var d1 = $.Deferred();
var d2 = $.Deferred();
$.when( d1, d2 ).done(function ( v1, v2 ) {
console.log( v1 ); // "Fish"
console.log( v2 ); // "Pizza"
});
d1.resolve( "Fish" );
d2.resolve( "Pizza" );
同样,如果您有诸如
artistRequests = [d1,d2]
之类的承诺数组您可以将散布运算符用于数组
$.when(trackFeatures , ...artistRequests ).done(function ( v1, v2 ) {
console.log( v1 ); // "Fish"
console.log( v2 ); // "Pizza"
});
PS:
...artistRequests
将数组的每个值分割为单个变量。