节流阀 只允许一次请求(避免重复点击)

 data: {
    //定一个状态 无论什么请求在数据回来之前 只允许请求一次 0:请求之前 1:请求结束
    apiOnce: 1,
}
 
methods:{
 //点击加载更多数据
  moreData() {
    //一进来默认阻止 只允许请求一次
    if (this.data.apiOnce == 0) {
      return
    }
    //不为0进来 重置请求状态
    this.setData({
      apiOnce: 0
    })
}
 
}

success: (res) => {
            if (res.data.data.goods_list.length == 0) {
              this.setData({     //success成功拿到结果过后把状态重置为1
                apiOnce: 1
              })
            }
          }
 
 
 
 
 
 
第二种方法  : 点赞逻辑  防止用户重复点赞  当点击完成需要切换灰色图  再次 点击切换红色  (两张图 进行切换的防止重复点击)
 
// 参数
data"{

  flag:true  //没点过

}
    //方法
getTagsArticle(e) {
const that = this; if (that.data.flag == false) { //一进来如果是点过了 那么就阻止
       wx.showToast({
            title: '正在点赞中,请稍等',
              icon: 'none'
          })
          return
        }
        that.setData({    // 如果没点过 这次点击 切换为点过了
            flag: false
        })

        console.log(e)
        let num = e.currentTarget.dataset.num
        var postsData = {
            id: that.data.id,
            num: num
        }
        let dataInfo = requestSign.requestSign(postsData)
        header.sign = dataInfo
        wx.request({
            url: api.get_tagsArticle,
            data: postsData,
            header: header,
            method: 'POST',
            dataType: 'json',
            responseType: 'text',
            success: ({
                data
            }) => {

                console.log(data, '成功')
                if (data.code == 1) {
                    if (num > 0) {
                        that.setData({
                            tagsNumber: that.data.tagsNumber + 1,
                            tags: 1
                        })
                    } else {
                        that.setData({
                            tagsNumber: that.data.tagsNumber - 1,
                            tags: 0
                        })
                    }
                  
                } else {
                    wx.showToast({
                        title: data.message
                    })
                }

} })
fail: (res) => {},
complete: function () {
        setTimeout(function () { //成功过后 设置定时器 1 秒过后表示没点过按钮
          that.data.flag = true;
        }, 1000); //一秒内不能重复点击
      }
 
; }
 
原文地址:https://www.cnblogs.com/xiaoxiaoxun/p/12134234.html