收藏
回答

目前发现在部分安卓机型上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测试,是没问题的。所以应该是小程序特有的问题。


回答关注问题邀请回答
收藏

2 个回答

  • 韬々
    韬々
    2018-12-14

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

    2018-12-14
    有用
    回复 1
    • kk
      kk
      2019-01-09

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

      2019-01-09
      回复
  • 灵芝
    灵芝
    2018-12-13

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

    2018-12-13
    有用
    回复 4
    • kk
      kk
      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
      回复
    • 灵芝
      灵芝
      2018-12-13回复kk

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

      2018-12-13
      回复
    • kk
      kk
      2018-12-14回复灵芝

      所以milliseconds不允许设置为0吗

      2018-12-14
      回复
    • kk
      kk
      2018-12-14回复灵芝

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

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

      2018-12-14
      回复
登录 后发表内容