收藏
回答

settimeout如何停止

问题模块
API和组件

如何将settimeout停止。

最后一次编辑于  2017-06-27  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

10 个回答

  • 夜未央
    夜未央
    2017-06-27

    设置时间不就行了吗?setTimeout(fangfa(),2000),这个是2秒后结束!

    2017-06-27
    赞同
    回复
  • maq
    maq
    2017-06-27

    你指的是 clearTimeout ?

    2017-06-27
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-06-27

    @夜未央 我的意思是这两秒内突然不想再执行这个settimeout了

    2017-06-27
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-06-27

    @maq 是的,是这个clearTimeout  但是我调用了,好像没什么作用

    2017-06-27
    赞同
    回复
  • maq
    maq
    2017-06-27

    应该是你的用法有问题。贴代码吧。

    2017-06-27
    赞同
    回复
  • 夜未央
    夜未央
    2017-06-27

    学习学习看看你的代码

    2017-06-27
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-06-27


    var that = this;
    var voice_name = e.currentTarget.dataset.voice_name;
    var voice_time = e.currentTarget.dataset.voice_time;
    var voice_src = that.data.voice_src;
    var setout = '';
    if(voice_name == voice_src){
        //停止播放
        console.log('停止播放222');
        that.setData({
            voice_src : '',
        });
        wx.stopVoice();
        clearTimeout(setout);
    }else{
        //开始播放
        that.setData({
            voice_src : voice_name,
        });
        wx.downloadFile({
            url: voice_name,
            success: function(res) {
                console.log(res);
                console.log('开始播放');
                wx.playVoice({
                    filePath: res.tempFilePath
                })
                setout = setTimeout(function() {
                    console.log('停止播放');
                    //停止播放
                    that.setData({
                        voice_src : '',
                    });
                    wx.stopVoice()
                }, voice_time * 1000);
            }
        })
    }


    2017-06-27
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-06-27

    @maq 能看出是什么问题吗


    2017-06-27
    赞同
    回复
  • maq
    maq
    2017-06-27

    你这段代码,虽然 setTimeout() 的时候赋值给了 setout 变量,但这个变量在下次点击进入这段代码的时候被重新赋值为 '' 了。


    要想让 setout 变量达到你期望的效果,应该把它定义在这段代码块的外边。或者用 that.setout 来记录也行。

    2017-06-27
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-06-27

    我试试,多谢。

    2017-06-27
    赞同
    回复