setTimeout回调在递归调用时会延迟

时间:2019-04-18 10:54:19

标签: browser settimeout setinterval

递归调用setTimeout时,其回调会延迟。

我以前使用的是setInterval,这导致了更多的延迟。

让我先设置它。

this.interval = setTimeout(()=> {

        this.refresh_token();
    }, 60000);

refresh_token =异步()=> {    //做一些工作

this.interval = window.setTimeout(()=> {
    this.refresh_token();
}, 60000);
console.log("Setting up the new setTimeout again with current time.", new Date());

} 有时1秒后它会以适当的方式工作。

有时是随机的,在3/4/5秒后会收到回调。

此外,我发现这里很重要的一点是,不能保证setTimeout在调用后准确触发所提供的毫秒数。

有关更多信息,请参见MSDN文档的这一部分https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout#Reasons_for_delays_longer_than_specified

这是我的setTimeout延迟的原因吗? 如果是,是否有解决此问题的方法。

0 个答案:

没有答案