收藏
回答

目前发现在部分安卓机型上setInterval函数有问题

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug Android 8.1.0 vivo NEX A 6.7.3

目前发现在部分安卓机型上setInterval函数有问题

当将setInterval函数的参数milliseconds设置为0时,运行不会报错,但是会把后面的代码吞掉。

例如一下代码:

console.log('onLaunch in')

const s = setInterval(() => {}, 0)
console.log('onLaunch out', s, clearInterval(s))

'onLaunch out'不会打印出来。

目前发现在一台小米8 miui 10.0上也出现这个问题,但是另一台小米 miui 9.5没有问题。所以就算是同样机型同样的微信版本也不能保证可以复现。我这里机器不够多,所以没有做更多的测试。

PS:有在微信H5测试,是没问题的。所以应该是小程序特有的问题。


最后一次编辑于  2018-12-13  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 韬々
    韬々
    2018-12-14

    这里我们看一下吧,按道理来说表现是每次事件队列循环的时候都要执行一次才对。

    2018-12-14
    赞同
    回复 1
    • 奇诺
      奇诺
      01-09

      是的,同一个机器。H5是没问题的

      01-09
      回复
  • nickname
    nickname
    2018-12-13

    麻烦提供出现问题的机型和微信版本、系统版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2018-12-13
    赞同
    回复 4
    • 奇诺
      奇诺
      2018-12-13

      机型:vivo NEX A,系统:8.1.0, 微信版本:6.7.3

      就这三行代码,写在哪都行

      console.log('onLaunch in')

      const s = setInterval(() => {}, 0)
      console.log('onLaunch out', s, clearInterval(s))


      2018-12-13
      回复
    • nickname
      nickname
      2018-12-13回复奇诺

      这边测试设置为0 的时候是会报错的哦

      2018-12-13
      回复
    • 奇诺
      奇诺
      2018-12-14回复nickname

      所以milliseconds不允许设置为0吗

      2018-12-14
      回复
    • 奇诺
      奇诺
      2018-12-14回复nickname

      我试了下,我这边报错是概率性的

      但是不管报不报错,后面的代码都不会执行了

      2018-12-14
      回复