Jquery $.when是否按照延迟在数组中的顺序解析延迟数组?
我有一个数目未知的延迟数组,我正试图用$.when解决它。当所有延迟都已解决时,'.then'函数是否会按照我当时在数组中输入的顺序返回已解决的延迟 伪代码示例:Jquery $.when是否按照延迟在数组中的顺序解析延迟数组?,jquery,jquery-deferred,json-rpc,Jquery,Jquery Deferred,Json Rpc,我有一个数目未知的延迟数组,我正试图用$.when解决它。当所有延迟都已解决时,'.then'函数是否会按照我当时在数组中输入的顺序返回已解决的延迟 伪代码示例: var deferreds = []; for(0,1,2,...,x) { var def = JsonRpc(...); deferreds.push(def); } $.when.apply($, deferreds).then(function () { console.log(arguments.lengt
var deferreds = [];
for(0,1,2,...,x) {
var def = JsonRpc(...);
deferreds.push(def);
}
$.when.apply($, deferreds).then(function () {
console.log(arguments.length); //outputs a number >= 0
for(0,1,2,...,x) {
console.log("Defered: ", arguments[0,1,2,...,x])
}
});
延期[0]是否等于参数[0],延期[x]是否等于参数[x]
提前感谢您的回复!
//Edvin根据文档: 传递给doneCallbacks的参数提供解析的值 对于每个延期,并匹配延期的顺序 传递给jQuery.when()。例如: 举个小例子:
var递延=[];
对于(变量i=0;i<3;i++){
var def=$.Deferred();
延迟。推送(def);
}
$.when.apply($,延迟)。然后(函数(){
console.log(arguments.length);//输出一个大于等于0的数字
对于(变量i=0;i<3;i++){
log(“延迟:”,参数[i]);
}
});
延期[1]。决议(“第2条”);
延期[2]。决议(“第3条”);
延期[0]。解决(“Fish1”)代码>
一次只回答一个问题/陈述
$.when是否按照延迟在数组中的顺序解析延迟数组
否。$。when()
无法解析传递给它的延迟/承诺。它聚合了延期/承诺,每个延期/承诺都通过其他方式解决(解决或拒绝)。在这里,“聚合”意味着接受一组承诺并返回单个承诺
我有一个数目未知的延迟数组,我正试图用$.when解决它
同样,$.when()
不会解决传递给它的延迟/承诺
当所有延迟都已解决时,'.then'函数是否会按照我当时在数组中输入的顺序返回已解决的延迟
否,.then()
不会返回延迟、已解决或其他情况。但是是的,它的成功回调函数(如果它激发)的参数将与原始数组一致
延期[0]是否等于参数[0],延期[x]是否等于参数[x]
不,它们不会相等,但它们会一一对应。每个参数都将是原始数组中相应延迟/承诺的结果。我相信这是一个重复的问题:谢谢您的回答!很好的例子。我已经阅读了这部分文档,但不知道它是否也适用于阵列。我对Javascript还是很陌生,因此必须确保:)
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" );