gpt4 book ai didi

javascript - 同步发出多个ajax请求

转载 作者:行者123 更新时间:2023-11-28 19:20:20 26 4
gpt4 key购买 nike

假设我有一个名为 makeRequest() 的函数,它向服务器发出 AJAX 请求。

现在假设我得到了应该发出此请求的次数,但我不能异步执行这些请求,而是同步执行。

例如,给定数字5,我将调用makeRequest(),当它完成时,我将再次调用它,当它完成时,我将再次调用它.. .我最终应该调用它 5 次。

我不是 JavaScript 专家,但我发现使用回调处理异步调用很容易。

因此,我的 makeRequest() 函数采用一个 callback 参数,该参数将在请求成功时执行。

在之前的示例中,我必须发出 5 次请求,因此行为应如下所示:

makeRequest(function () {
makeRequest(function () {
makeRequest(function () {
makeRequest(function () {
makeRequest(function () {
});
});
});
});
});

我如何设计它,使其对于给我的任何参数(无论是 6 个、12 个甚至 1 个)表现相同?

PS:我尝试了很多方法,最常见的是创建 while 循环,等待完成的请求设置标志。所有这些方法都会让浏览器认为脚本崩溃并提示用户停止脚本。

最佳答案

简单,递归调用ajax请求,同时跟踪计数变量:

function makeRequest(count, finalCallback){
someAjaxCall(data, function(){
if(count > 1){
makeRequest(count - 1, finalCallback);
} else {
finalCallback && finalCallback();
}
});
}

finalCallback 是一个可选的回调(函数),将在所有请求完成时执行。

关于javascript - 同步发出多个ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29010354/

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