gpt4 book ai didi

javascript - jQuery for ajax 调用循环并等待所有操作完成

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

他我有一个问题我需要向同一 URL 发送多个 AJAX 调用,但使用不同的数据。我需要将其分块发送,并等待所有请求在我的 _.each 函数之前完成。

我做了一个简单的 block 函数,对我的数组进行切片并将其滑入组。

我的代码:

 ---- js ----

batch = [0,1,2,3,4,5,....] // big array
var xhr = chunk(batch, 20);
for (i=0; i < xhr.length ; i++ ) {
//loop number of time of xhr.length
ajax.call("/", "POST", {batch: xhr[i]}).done(function(resp){
arrayResp.push(resp);
});
}

/// after all ajax calls and arrayResp is done
exectue
_.each(arrayResp, function (element) {
//do somting
});

----- /js -----

我最终需要得到一个完整的数组来保存我所有的resp数据

我无法执行 $.when() 因为我无法命名该函数我不知道如何在这个函数中使用 $.Deferred()你能帮我吗?

谢谢!

最佳答案

    var res = [];
// this may not be needed
var arrayResp = [];

batch = [0,1,2,3,4,5,....] // big array
var xhr = chunk(batch, 20);
for (i=0; i < xhr.length ; i++ ) {
//loop number of time of xhr.length
// push `ajax` jQuery promise to `res`
res.push(
ajax.call("/", "POST", {batch: xhr[i]})
// this may not be needed,
// see `arguments` at `.then`
.done(function(resp){
arrayResp.push(resp);
})
);
}
// when all `xhr` complete ,
// process array of `xhr` jQuery promises
$.when.apply($, res)
.then(function() {
// do stuff with `arrayResp``
console.log(arrayResp, arguments);
});

关于javascript - jQuery for ajax 调用循环并等待所有操作完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30245126/

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