在setTimeout中调用相同的函数

时间:2015-04-08 08:50:40

标签: javascript settimeout

我有一个执行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毫秒之后传入。

这段代码有什么问题?

1 个答案:

答案 0 :(得分:6)

您正在调用该函数并将结果作为第一个参数传递给setTimeout,而不是传递对该函数的引用。正确的语法是:

setTimeout(check_something, 2000);