jquery - $.when() 带有单个延迟和延迟数组
jquery - $.when() with single deferred and array of deferred
我正在使用 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
将数组的每个值拆分为单个变量。
我正在使用 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
将数组的每个值拆分为单个变量。