JavaScript中的window.setTimeout或window.setInterval调用的函数列表?

时间:2012-10-13 09:27:04

标签: javascript settimeout setinterval

  

可能重复:
  JavaScript - Is it possible to view all currently scheduled timeouts?

有没有办法通过window.setTimeout()window.setInterval()访问计划调用的所有函数列表(或计划评估的字符串)?

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

3 个答案:

答案 0 :(得分:1)

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

[Supplemental, NoInterfaceObject]
interface WindowTimers {
  long setTimeout(in any handler, in optional any timeout, in any... args);
  void clearTimeout(in long handle);
  long setInterval(in any handler, in optional any timeout, in any... args);
  void clearInterval(in long handle);
};
Window implements WindowTimers;

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

答案 1 :(得分:0)

除了你为setTimeout和setInterval编写一个包装器并实现在里面调用它们并将函数推送到数组

之外,我认为你不能。

答案 2 :(得分: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);
编辑:我想我在那里有点慢。