4

如果我在 javascript 中设置了超时

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

并且一个不同的事件使我需要立即执行该超时,有没有一种方法可以使用该存储的 id 来执行该函数?我知道我可以存储对该函数的引用,调用clearTimeout然后myTimeoutId直接调用该函数,但是其中涉及到大量的簿记。

是否有类似的功能 executeNow( myTimeoutId )

4

2 回答 2

7

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

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

var myTimeoutId = setTimeout( fn, 15000);

// one possibility
function other () {
    clearTimeout(myTimeoutId);
    fn();
}
于 2013-10-15T17:01:34.913 回答
1

在nodejs中:

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

// execute timeout function
timeout._onTimeout();
clearTimeout(timeout);
于 2020-07-28T10:10:49.033 回答