javascript - 在 setTimeout 中调用相同的函数

标签 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();
});

但是从网络控制台日志和服务器日志来看,对“/something”的请求的间隔时间似乎快于 2 秒。我看到请求在 10 或 12 毫秒后传入。

一段代码可能存在什么问题?

最佳答案

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

setTimeout(check_something, 2000);

关于javascript - 在 setTimeout 中调用相同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29510037/

相关文章:

javascript - 在日期选择器中显示当前日期

javascript - (Angular) 拦截 HttpResponse 错误并继续 Observable

javascript - 如何让二维码阅读器识别您生成的二维码?

javascript - while 循环中的 setTimeout

Javascript:如何将不同的对象传递给循环中创建的 setTimeout 处理程序?

javascript - npm install 不会创建 dist 文件夹

Javascript - 如何在 iframe 中取消 YouTube 视频静音

javascript - 循环内的 DOM 操作发生得太快

javascript - 仅当ajax响应时间超过X毫秒时,如何调用 "Please Wait"窗口?

javascript - setTimeout 与日期对象