时间:2019-05-03 来源:小程序工厂
你不需要setData啊。。直接 this.index=0 this.index=1 这样就行啦
不不不不。。你理解错了。。我的意思是,你不需要setData。。你就写成
if(this.prevent){
return
} else {
this.prevent = true
}
wx.request({
...
success: xxx=>{
...
this.prevent = false
}
})
又学到一招 但还是觉得这种方式不太好 很多方法调方法很容易就漏掉了 提前放开的话又没有效果 大佬有没有什么好方法
看你的需求是什么样子。。如果是初始化阶段防止点击,可以用 wx.showLoading({mask:true})。。如果只是控制频率,可以setTimeout把 this.prevent复位为false。。
可以封装成方法呀,然后各自用不同的prevent属性,preventTap preventSearch preventNav 然后做个方法统一去判断复位。。
初始化的都还好说 就是控制快速点击的 严重影响代码可读性 有些方法调方法 发送多个请求的时候很容易漏掉 比如请求后success里面放开了 然后fail里里面忘记了 又不能放在complete同一放开的情况 还是很多的
你这么说起来 你可能要用 promise了 或者 async/await 。。
我也试过 但是有些情况还是不使用
这个我在同步请求用到了 但放重复点击应该不用那么复杂吧