V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
magicwu
V2EX  ›  问与答

有偿请教,请问 JS 中怎么获取 Timer 的所有事件

  •  
  •   magicwu · 2019-06-20 20:12:39 +08:00 · 2208 次点击
    这是一个创建于 2016 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,有人知道吗? 当时的代码写的有点问题,是这样写的 setInterval(function(){ doSomething() },1000601);

    没有保存返回值,而这段代码在前端,现在没办法更新,只能通过后端来更改。

    现在有办法取消这个定时器的执行吗? Window 中有没有函数可以获取所有的事件?

    先谢过了!如能解决,发红包!

    14 条回复    2019-06-30 19:35:27 +08:00
    xxx749
        1
    xxx749  
       2019-06-20 20:21:13 +08:00 via Android
    这个函数返回的是定时器 ID ( int ),你可以从 0 开始遍历一遍来取消,当然也会取消掉其他的定时器
    magicwu
        2
    magicwu  
    OP
       2019-06-20 20:35:47 +08:00
    @xxx749 谢谢回复,但好像不行,页面上有很多定时器,试了一下,每次的定时器 id 还不一样
    rabbbit
        3
    rabbbit  
       2019-06-20 21:12:48 +08:00
    而这段代码在前端,现在没办法更新,只能通过后端来更改。 <-- 没看懂,这里的后端指得是啥? 只有编译过的 js 代码,找不着 setInterval 的位置了?
    Yvette
        4
    Yvette  
       2019-06-20 21:58:10 +08:00 via iPad
    hoyixi
        5
    hoyixi  
       2019-06-20 22:05:13 +08:00
    看不懂问题啥意思,本来以为自己看懂了,然后看了楼主 2 楼回复,更不懂了
    westoy
        6
    westoy  
       2019-06-20 22:13:21 +08:00
    能插开头的话, 重写下 setInterval?
    morethansean
        7
    morethansean  
       2019-06-20 22:52:50 +08:00
    拦截一下 setInterval 不行吗?
    magicwu
        8
    magicwu  
    OP
       2019-06-21 00:11:08 +08:00
    @morethansean 想拦截,但不知道怎么拦
    magicwu
        9
    magicwu  
    OP
       2019-06-21 00:12:25 +08:00
    @Yvette 看了一下代码,他应该是把原来的 interval 改写了,所以。。。
    magicwu
        10
    magicwu  
    OP
       2019-06-21 00:12:42 +08:00
    @westoy 不能插在开头。。。
    lingyi95
        11
    lingyi95  
       2019-06-21 00:46:26 +08:00
    只能通过后端来改?不明白
    lingyi95
        12
    lingyi95  
       2019-06-21 00:47:25 +08:00
    重写方法,跟把这段源码注释有区别吗
    Tony8Finet
        13
    Tony8Finet  
       2019-06-23 05:14:19 +08:00
    参考一下这个模组做法,看是否可用 async_hooks 来拦截:
    github.com/mafintosh/why-is-node-running
    magicwu
        14
    magicwu  
    OP
       2019-06-30 19:35:27 +08:00
    @lingyi95 嗯, 是的,有两个定时,比较慢执行,重写可以。但一个定时,比较快。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5662 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:08 · PVG 11:08 · LAX 19:08 · JFK 22:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.