我有一个执行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();
});
但是从网络控制台日志和服务器日志来看,它看起来像是对#34; / something"的请求。以超过2秒的间隔来到。我看到请求在10或12毫秒之后传入。
这段代码有什么问题?
答案 0 :(得分:6)
您正在调用该函数并将结果作为第一个参数传递给setTimeout
,而不是传递对该函数的引用。正确的语法是:
setTimeout(check_something, 2000);