在延迟到期之前调用JavaScript setTimeout回调

时间:2018-10-17 04:22:36

标签: javascript settimeout

我有一个启动超时的函数,如果满足分配给超时的时间,则运行超时代码。

但是我也想这样做,以便另一个函数可以过早地使超时运行。

我知道JavaScript具有一个“ clearTimeout” api,如以下示例所示:

var myVar;

function myFunction() {
    myVar = setTimeout(function(){ alert("Hello") }, 3000);
}

function myStopFunction() {
    clearTimeout(myVar);
} 

但是我找不到任何使超时过早运行的API。我该怎么做?

1 个答案:

答案 0 :(得分:1)

语言本身没有适用于您的情况的概念,您可以停止超时,但不能通过内置函数强制在任何时候执行。

function timeout(fn, timer) {
  var timerId = setTimeout(fn,timer);
  return {
    clear: function() {
       clearTimeout(timerId);
    },
    forceExecute: function() {
      this.clear();
      fn();
    } 
  } 
} 

尝试一下可能会有帮助