gpt4 book ai didi

javascript - 成功时递归 Ajax

转载 作者:行者123 更新时间:2023-11-29 17:24:31 24 4
gpt4 key购买 nike

我正在尝试根据每个请求返回的每个成功响应递归地发出 ajax 请求 我是否容易出现堆栈溢出?如果是这样,你有更好的方法吗?我的要求是最初执行一个 ajax 请求,如果返回的 json 没有完成,则执行另一个具有相同参数的 ajax 请求......等等,直到我得到完成标志。

go: function (r) {
Ext.Ajax.request({
url: 'bleh',
success: function (response) {
var data = Ext.decode(response.responseText); // decode json into object
r.update();
if (!data.isDone) go(r);
}
});
}

最佳答案

这实际上不是递归,所以没有堆栈溢出的危险。它可能看起来像递归,但由于 ajax 调用是异步的,因此您的 go() 函数仅启动 ajax 调用,然后 go() 函数立即完成,而ajax 调用正在进行中。因此,成功处理程序在 go() 函数完成后很长时间内被调用。所以,它实际上不是递归,也没有堆栈堆积。

从代码的视觉效果看可能是递归,但是因为ajax调用是异步的,并且在go()函数返回很久之后才调用success handler,所以没有堆栈积累。

关于javascript - 成功时递归 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019227/

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