收藏
回答

小程序setData异步导致的页面倒计时倒数秒数更新不及时

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

4 个回答

  • 小铃铛🔔
    小铃铛🔔
    03-29

    解决了吗?

    03-29
    有用
    回复
  • 
    
    2021-08-24

    解决了吗?


    2021-08-24
    有用
    回复
  • chinnn
    chinnn
    2021-06-07

    你好解决了吗

    2021-06-07
    有用
    回复
  • 微喵网络
    微喵网络
    2021-06-01

    上代码

    2021-06-01
    有用
    回复 1
    • 苳
      2021-06-01
      【代码】
      setTimer (second) {
        this.timer && clearTimeout(this.timer)
        this.timer = setTimeout(() => {
          second--
          console.log(“倒计时”, second)
          this.setData({ readSeconds: second },()=>{
            console.log(“设置成功”);
          })
          if (second > 0) {
            this.setTimer(second)
          } else if (second === 0) {
            clearTimeout(this.timer)
          }
        }, 1000)
      },


      this.setTimer(5)


      <view>倒计时{{readSeconds}}</view>


      正常日志打印顺序:
      console.log("倒计时";, 4)
      console.log("设置成功');
      console.log("倒计时', 3)
      console.log("设置成功');
      console.log("倒计时', 2)
      console.log("设置成功');
      console.log("倒计时', 1)
      console.log("设置成功');
      console.log("倒计时', 0)
      console.log('设置成功');


      偶发问题:倒计时页面不更新,日志打印顺序:
      console.log('倒计时', 4)
      console.log('倒计时', 3)
      console.log('倒计时', 2)
      console.log('倒计时', 1)
      console.log('倒计时', 0)
      console.log('设置成功');
      console.log('设置成功');
      console.log('设置成功');
      console.log('设置成功');
      console.log('设置成功');
      2021-06-01
      回复
登录 后发表内容