【问题标题】:List of functions to be called by window.setTimeout or window.setInterval in JavaScript? [duplicate]JavaScript中window.setTimeout或window.setInterval要调用的函数列表? [复制]
【发布时间】:2012-10-13 09:27:03
【问题描述】:

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

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

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

【问题讨论】:

  • 你能说得更具体一点吗?无法理解你的问题。据我了解,您始终可以查看 API 来查找参数。等
  • 我试图了解一个 JS 模块(不是我写的)是如何工作的。只是想检查一下它的行为。

标签: javascript settimeout setinterval


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      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);
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 1970-01-01
        • 1970-01-01
        • 2011-03-22
        • 2013-08-13
        相关资源
        最近更新 更多