我正在使用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将数组的每个值分割为单个变量。

10-04 22:47