1

可能重复:
JavaScript - 是否可以查看所有当前计划的超时?

有什么方法可以访问计划由window.setTimeout()or调用(或计划评估的字符串)的所有函数的列表window.setInterval()

返回与最初调用这些函数时返回的对象相同的对象数组。

4

3 回答 3

1

不,该WindowTimers接口不提供任何方法来获取当前排队的任务列表:

[补充,NoInterfaceObject]
接口窗口定时器 {
  long setTimeout(在任何处理程序中,在可选的任何超时中,在任何...参数中);
  void clearTimeout(长句柄);
  long setInterval(在任何处理程序中,在可选的任何超时中,在任何...参数中);
  void clearInterval(长句柄);
};
Window 实现 WindowTimers;

您必须编写自己的代码才能跟踪处理程序。

于 2012-10-13T09:33:06.117 回答
0

我无法回答您的问题(尽管我认为没有办法),但是根据您要执行的操作,您可以编写一个包装函数,然后将其添加到您控制或触发的数组中一个可以放置监听器的事件,或者...

当然,这只会让您控制自己设置计时器的功能。

var stack = new Array();

window.mySetTimeout = function (func, delay) {
   stack.push(func);
   window.setTimeout(func, delay); 
}

function doSomething () {
   return true;
}

window.mySetTimeout(doSomething, 500);
console.log(stack);

编辑:我想我在那里有点慢。

于 2012-10-13T09:38:32.743 回答
0

我不认为你可以,除非你为 setTimeout 和 setInterval 编写一个包装器并实现在内部调用它们并将函数推送到一个数组

于 2012-10-13T09:33:36.490 回答