背景:
由于公司 小程序的基础功能都是我在维护(请求,画图等等)
之前开会的时候交给了我一个任务
让我把小程序的所有POST接口加一个防抖
第一时间 我想到的是用 debounce 函数
然是 我们的请求方法返回的是一个promise
如下
行不通的思路
-
期间问了下同事 ,他说你返回一个空的
promise不会报错(事实证明会报错,他吹牛逼) -
也想过加入一个闭包 让参数存起来去判断,感觉做复杂了
-
用小程序请求方法的
abort()改动太多了,不好(太懒)
所以 参考了下axios的拦截器
想了想 最好的解决方法是:
如果是重复的接口就不去请求,
实现结果
- 在全局变量里面加一个临时http记录 记录上一个接口
- 在请求的方法里加一个判断
- 判断是否要防抖
debounce是不是post请求 - 判断一下全局变量里的url和当前url一样不 时间是不是小于500ms
- 如果是重复的 返回一个
promise - 如果不是重复的记录一下临时的Url参数和时间
总结:
总体实现起来还是断断续续想了2天 主要是要结合项目和小程序
如果大家有什么好方法也可以教教我