强制javascript超时函数立即执行

时间:2013-10-15 16:58:56

标签: javascript timeout

如果我在javascript中设置了超时

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

并且一个不同的事件让我需要立即执行超时,有没有办法可以使用存储的id执行该函数?我知道我可以存储对该函数的引用,在clearTimeout上调用myTimeoutId然后直接调用该函数,但是有相当数量的簿记。

是否有 executeNow( myTimeoutId )

行的功能

2 个答案:

答案 0 :(得分:5)

没有。您需要单独创建该函数,以便可以从任何地方调用它:

function fn (){
    // ... do some stuff ....
}

var myTimeoutId = setTimeout( fn, 15000);

// one possibility
function other () {
    clearTimeout(myTimeoutId);
    fn();
}

答案 1 :(得分:0)

在nodejs中:

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

// execute timeout function
timeout._onTimeout();
clearTimeout(timeout);