gpt4 book ai didi

jquery - $.when 是否按照数组中的顺序解析延迟数组?

转载 作者:行者123 更新时间:2023-12-01 04:41:06 24 4
gpt4 key购买 nike

我有一个未知数量的延迟数组,我正在尝试使用 $.when 来解决它。当所有延迟都已解决后,“.then”函数是否会按照我在数组中输入的顺序返回已解决的延迟?

伪代码示例:

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

deferreds[0] 是否等于arguments[0],deferreds[x] 是否等于arguments[x]?

预先感谢您的所有回复!//艾德文

最佳答案

根据文档:

The arguments passed to the doneCallbacks provide the resolved values for each of the Deferreds, and matches the order the Deferreds were passed to jQuery.when(). For example:

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" );

一个小例子:

var deferreds = [];
for (var i = 0; i < 3; i++) {
var def = $.Deferred();
deferreds.push(def);
}

$.when.apply($, deferreds).then(function() {
console.log(arguments.length); //outputs a number >= 0
for (var i = 0; i < 3; i++) {
console.log("Defered: ", arguments[i]);
}
});

deferreds[1].resolve("Fish2");
deferreds[2].resolve("Fish3");
deferreds[0].resolve("Fish1");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于jquery - $.when 是否按照数组中的顺序解析延迟数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com