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

Call JavaScript setTimeout callback before delay expires

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

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

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

var myVar;

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

function myStopFunction() {
    clearTimeout(myVar);
} 

但是我找不到任何api过早地超时运行。我怎样才能做到这一点?

语言本身没有概念来应用你的案例,你可以停止超时,但你不能通过内置函数在你想要的任何时间强制执行。

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

试试这个可能会有帮助