强制 JavaScript 超时函数立即执行

force a javascript timeout function to execute immediately

本文关键字:执行 函数 JavaScript 超时 强制      更新时间:2023-09-26

如果我在javascript中设置了超时

var myTimeoutId = setTimeout( function(){
    ... do some stuff ....
}, 15000);

不同的事件使我需要立即执行超时,有没有办法可以使用该存储的ID来执行函数?我知道我可以存储对该函数的引用,在myTimeoutId上调用clearTimeout,然后直接调用该函数,但这涉及相当多的簿记。

有没有类似 executeNow( myTimeoutId )的功能?

No.您需要单独创建函数,以便可以从任何位置调用它:

function fn (){
    // ... do some stuff ....
}
var myTimeoutId = setTimeout( fn, 15000);
// one possibility
function other () {
    clearTimeout(myTimeoutId);
    fn();
}

in nodejs:

const timeout = setTimeout(() => {
  console.log("timeout function");
}, 10000);
// execute timeout function
timeout._onTimeout();
clearTimeout(timeout);