收藏
回答

想通过定时器循环加载一个wx.showToast()弹框,但是只执行了一次,后续没生效是什么原因?

第一次执行显示正常

后续就会变成这种

找了很久没找到原因

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

3 个回答

  • optimistic
    optimistic
    2023-09-05

        let count = 0;

        setInterval(() => {

          count++;

          uni.showToast({

            title: '我是首页' + count,

            duration: 3000,

            icon: 'loading',

          });

        }, 3000);

    我这是可以的 检查你的初始值是不是4

    2023-09-05
    有用
    回复 3
    • 故人
      故人
      发表于移动端
      2023-09-05
      初始值是0,定时器确实也执行了五次,但是弹框只执行了一次
      2023-09-05
      回复
    • optimistic
      optimistic
      2023-09-05回复故人
      把这段定时器的代码先注释,看看会不会出现loading,如果有那百分百就是其他地方有 showLoading 的代码影响到你,可以观察 20s 是不是有变化
      2023-09-05
      回复
    • 故人
      故人
      发表于移动端
      2023-09-05回复optimistic
      好的,谢谢哥
      2023-09-05
      回复
  • 鑫
    2023-09-05

    你的number应该是4吧,等于5的时候被你清掉了

    2023-09-05
    有用
    回复 4
    • 故人
      故人
      2023-09-05
      你好,清掉这个倒是没太大影响,就是后续的弹框没显示
      2023-09-05
      回复
    • 鑫
      2023-09-05回复故人
      你提供的代码不全,你检查下number是否没有还原,比如你在t.getgetjudgestartstatus()这个函数里面取消了定时器但是没有将number初始化为0。
      2023-09-05
      回复
    • 鑫
      2023-09-05回复故人
      我看了下你的其他回复,getgetjudgestartstatus清除定时器的时候没有把number重新初始化
      2023-09-05
      回复
    • 故人
      故人
      发表于移动端
      2023-09-05回复
      好的,谢谢
      2023-09-05
      回复
  • 微盟
    微盟
    2023-09-05

    看看是不是哪里用了wx.showLoading,把这个弹框顶了,你这边的代码补全这个函数干啥了, 不清楚

    2023-09-05
    有用
    回复 1
    • 故人
      故人
      2023-09-05
      后续的话是一个接口的调用,如果请求次数在5次以内,就会重新调用这个定时器发起请求,超过五次,或者接口返回超时就清除掉这个定时器
      2023-09-05
      回复
登录 后发表内容