收藏
回答

setTimeout之后,clearTimeout它,为什么还是把回调执行了???

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug setTimeout 微信安卓客户端 最新 最新

setTimeout之后,

在时间到达之前

clearTimeout,

为什么还是把回调执行了???

我需要在时间到达之前清除掉他,同时不要执行回调里面的内容,而不是清除的同时回调还被响应了,那我清除它还有什么意义呢?


    //配网超时
    clearTimeout(that.data.config_net_timeout);
    that.data.config_net_timeout = setTimeout(() => {
      wx.showToast({
        title: '配网超时,请重试',
        icon: 'error',
        duration: 2000
      });
    }, 30);

/////////////////////////////////////////////////////

    //清除超时提示
    if (that.data.config_net_timeout != null) {
      clearTimeout(that.data.config_net_timeout);
      that.data.config_net_timeout = null;
    }
回答关注问题邀请回答
收藏

1 个回答

  • 红薯
    红薯
    2023-03-20

    你这样写执行顺序就是先清空再执行回调里面的

    2023-03-20
    有用
    回复 3
    • 坏蛋
      坏蛋
      2023-04-06
      我要的是,我清除掉了,就不要执行了,而不是我清除掉了还能执行.那这样的话清除就毫无意义了呀
      2023-04-06
      回复
    • 红薯
      红薯
      2023-04-07回复坏蛋
      未复现,clearTimeout表现正常
      2023-04-07
      回复
    • 坏蛋
      坏蛋
      2023-04-20回复红薯
      不清楚当时是怎么回事,现在好了,估计写错了或者没有重新编译导致的吧
      2023-04-20
      回复
登录 后发表内容