在JavaScript中,如何从其事件函数中访问setTimeout/setInterval调用的id?

use*_*586 7 javascript settimeout setinterval

如何从其事件函数内部访问setTimeout/setInterval调用的进程id,因为Java线程可能访问自己的线程ID?

var id = setTimeout(function(){
    console.log(id); //Here
}, 1000);
console.log(id);
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 9

该代码将按原样运行,因为在调用提供的回调之前setTimeout始终返回,即使您传递的超时值非常小,为零或为负.

> var id = setTimeout(function(){
      console.log(id);
  }, 1);
  undefined
  162
> var id = setTimeout(function(){
      console.log(id);
  }, 0);
  undefined
  163
> var id = setTimeout(function(){
      console.log(id);
  }, -100);
  undefined
  485
Run Code Online (Sandbox Code Playgroud)

问题是我计划有许多同时安排的匿名操作,因此他们无法从同一个变量加载他们的id.

当然可以.

(function () {
  var id = setTimeout(function(){
    console.log(id);
  }, 100);
})();
Run Code Online (Sandbox Code Playgroud)

  • @user1636586 所以将他们的 id 推入一个数组并遍历该数组以清除它们。 (2认同)