gpt4 book ai didi

jQuery Deferred - 等待多个 AJAX 请求完成

转载 作者:行者123 更新时间:2023-12-03 21:25:52 25 4
gpt4 key购买 nike

我有一个三层深的延迟 ajax 调用链,理想情况下,当最深层完成时,它们会一直执行 promise (让我想起《盗梦空间》……“我们需要更深入!” )。

问题是我一次发送了许多 ajax 请求(可能是数百个),并且需要推迟到所有请求都完成为止。我不能指望最后一项是最后完成的。

function updateAllNotes() {
return $.Deferred(function(dfd_uan) {
getcount = 0;
getreturn = 0;
for (i = 0; i <= index.data.length - 1; i++) {
getcount++;
$.when(getNote(index.data[i].key)).done(function() {
// getNote is another deferred
getreturn++
});
};
// need help here
// when getreturn == getcount, dfd_uan.resolve()
}).promise();
};

最佳答案

您可以将 .when().apply() 与多个延迟一起使用。非常有用:

function updateAllNotes() {
var getarray = [],
i, len;

for (i = 0, len = data.length; i < len; i += 1) {
getarray.push(getNote(data[i].key));
};

$.when.apply($, getarray).done(function() {
// do things that need to wait until ALL gets are done
});
}

关于jQuery Deferred - 等待多个 AJAX 请求完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538470/

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