更新记录

2.0.0(2024-08-06) 下载此版本

普通函数的防抖节流基础上,对get、post的promise类型函数进行防抖节流


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × ×

防抖节流 重复点击 频繁触发 promise防抖节流promise requset请求封装

本文档面对接口请求的get于post的promise形式进行防抖节流, 仅做简单的功能介绍和使用,有特殊需求或需要参考情况请自行下载查看
此处介绍不多,更多内容写到封装的文件代码注释中(方便项目使用时快速查阅)

传参与this对象全都提前预置了,看需要是否保留

对于需求不满足可自行在此基础上改造扩展,也可把更好的代码留在评论区供大家学习参考

个人理解(函数适用场景)

防抖:N秒内的多次触发仅执行最后一次
节流:N秒内仅执行第一次

防抖场景:频繁触发事件如:change,缩减事件的触发频率
节流场景:按钮多次点击如:click,避免重复点击造成的接口的重复调用

js方式的使用方法

// 方法引入
import { get, post } from "@/common/request.js"
export default {
// 方法调用
    methods: {
        leeBtnClick() {
            get("/api/demo/demo", { id: "id" }).then(res => {
                console.log("执行接口返回值处理代码", res)
            }).catch(err => {
                if (err.code == 777) {
                    uni.showToast({
                        title: err.errMsg,
                        icon: "none"
                    })
                }
            })
        },
        leeBtnClickD() {
            post("/api/demo2/demo2", { id: "id" }).then(res => {
                console.log("执行接口返回值处理代码", res)
            }).catch(err => {
                if (err.code == 777) {
                    uni.showToast({
                        title: err.errMsg,
                        icon: "none"
                    })
                }
            })
        }
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问