在 $.when 中使用动态变量
Using dynamic variables in $.when
如何在$.when中使用动态deferred?获得了一个 ajaxFunction
函数 returns 延迟承诺。
function ajaxFunction(image){
var dfd = $.Deferred();
//Ajax of image
return dfd.promise();
}
根据动态条件调用此 ajaxFunction,例如
var defs = {};
var someQuerySelector = document.querySelectorAll('image');
for (var i = 0; i < someQuerySelector.length; i++) {
defs[d + 'i'] = ajaxFunction(someQuerySelector[i]);
}
现在我想把这些用到 $.when()
如何使用 defs
里面的动态键,比如 $.when(defs['d1'],defs['d2'])
。如何使用动态变量进入这个。方法上的任何改变或帮助将不胜感激。
如果将 defs
更改为数组,则可以 apply()
将其更改为 $.when
,如下所示:
var defs = [];
var someQuerySelector = document.querySelectorAll('image');
for (var i = 0; i < someQuerySelector.length; i++){
defs.push(ajaxFunction(someQuerySelector[i]));
}
$.when.apply(this, defs).done(function() {
// all complete, do something...
});
或纯粹在jQuery:
var defs = $('image').map(function() {
return ajaxFunction(this);
});
$.when.apply(this, defs).done(function() {
// all complete, do something...
});
以上假设您将 image
更改为有效的选择器,并且您正在为 ajaxFunction()
提供一些参数,否则以相同的方式重复调用它 N 次是非常多余的.
如何在$.when中使用动态deferred?获得了一个 ajaxFunction
函数 returns 延迟承诺。
function ajaxFunction(image){
var dfd = $.Deferred();
//Ajax of image
return dfd.promise();
}
根据动态条件调用此 ajaxFunction,例如
var defs = {};
var someQuerySelector = document.querySelectorAll('image');
for (var i = 0; i < someQuerySelector.length; i++) {
defs[d + 'i'] = ajaxFunction(someQuerySelector[i]);
}
现在我想把这些用到 $.when()
如何使用 defs
里面的动态键,比如 $.when(defs['d1'],defs['d2'])
。如何使用动态变量进入这个。方法上的任何改变或帮助将不胜感激。
如果将 defs
更改为数组,则可以 apply()
将其更改为 $.when
,如下所示:
var defs = [];
var someQuerySelector = document.querySelectorAll('image');
for (var i = 0; i < someQuerySelector.length; i++){
defs.push(ajaxFunction(someQuerySelector[i]));
}
$.when.apply(this, defs).done(function() {
// all complete, do something...
});
或纯粹在jQuery:
var defs = $('image').map(function() {
return ajaxFunction(this);
});
$.when.apply(this, defs).done(function() {
// all complete, do something...
});
以上假设您将 image
更改为有效的选择器,并且您正在为 ajaxFunction()
提供一些参数,否则以相同的方式重复调用它 N 次是非常多余的.