[英]How to wait only for 1 second when Ajax Request is made, but don't cancel the request after wait time?
我有一种情况,如果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);
}
请注意,您的call
函数不会返回任何内容。 相反,您实际上是处理事件(请求完成或超时到期或两者都发生)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.