我有一个执行 ajax GET 请求并返回成功或错误响应的函数。在成功响应中,我再次调用相同的函数,但在 2 秒后。为此,我有以下代码。
function check_something()
$.ajax({
type: 'GET',
url: '/something',
success: function(data){
setTimeout(check_something(),2000);
},
error: function(response) {
if(response.status == 401){
//do something else
}
}
});
};
$(function(){
check_something();
});
但是从网络控制台日志和服务器日志来看,对“/something”的请求的间隔时间似乎快于 2 秒。我看到请求在 10 或 12 毫秒后传入。
一段代码可能存在什么问题?
最佳答案
您正在调用该函数并将结果作为第一个参数传递给 setTimeout
,而不是传递对该函数的引用。正确的语法是:
setTimeout(check_something, 2000);
关于javascript - 在 setTimeout 中调用相同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29510037/