Javascript 在$.when中使用动态变量

Javascript 在$.when中使用动态变量,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,如何在$内使用动态延迟。何时?获得了一个返回延迟承诺的函数ajaxFunction function ajaxFunction(image){ var dfd = $.Deferred(); //Ajax of image return dfd.promise(); } 基于动态条件调用此ajaxFunction,如 var defs = {}; var someQuerySelector = document.querySelectorAll('image'); fo

如何在$内使用动态延迟。何时?获得了一个返回延迟承诺的函数
ajaxFunction

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]);
}
var-defs={};
var someQuerySelector=document.queryselectoral('image');
for(var i=0;i

现在我想把它们用在
$中。when()
如何在
$中使用
defs
动态键。when(defs['d1'],defs['d2'])
。如何将动态变量应用于此。方法或帮助方面的任何更改都将不胜感激。

如果将
defs
更改为数组,则可以
将其应用到
$。当
时,如下所示:

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...
});

上面假设您将
image
更改为有效的选择器,并且为
ajaxFunction()
提供了一些参数,否则以相同的方式重复调用N次是非常多余的。

是的,我使用image作为参数。还更新了问题$.when.apply(null,defs)这对我有用:)谢谢你的帮助
var defs = $('image').map(function() {
    return ajaxFunction(this);
});

$.when.apply(this, defs).done(function() {
    // all complete, do something...
});