gpt4 book ai didi

javascript - 如何在发出Ajax请求时只等待1秒,但等待时间后不取消请求?

转载 作者:行者123 更新时间:2023-11-29 18:45:35 26 4
gpt4 key购买 nike

如果 ajax 请求在 1 秒内没有返回,我必须返回 false。但是在请求完成后处理响应。使用 Ajax 超时对我不起作用,因为它会在该时间后取消请求。但我想要回应,即使需要很长时间。

例子:

function call(){
ajax.request(...)
if(does not respond in 1 second)
immediately return false and wait for response
else
return response
}

最佳答案

您需要在请求完成和错误处理程序之间设置一个竞赛。如果请求先完成,请设置一个标志,以便在处理错误之前检查:

function call(){
let finished = false;
function callback(){
finished = true
// your callback code goes here
};
ajax.request(..., callback) // make sure this is an async request
function handleTimeout() {
if (finished) return;
// your timeout code goes here
}
setTimeout(handleTimeout, TIMEOUT_IN_MILLISECONDS);
}

或者设置一个标志,你可以cancel the timeout .

请注意,您的call 函数没有返回任何内容。相反,您实际上是在处理事件(请求完成或超时到期)。

关于javascript - 如何在发出Ajax请求时只等待1秒,但等待时间后不取消请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54355778/

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