成功杂交,小程序接口(promise+防抖)

195 阅读1分钟

image.png

背景:

由于公司 小程序的基础功能都是我在维护(请求,画图等等)

之前开会的时候交给了我一个任务

让我把小程序的所有POST接口加一个防抖

第一时间 我想到的是用 debounce 函数

然是 我们的请求方法返回的是一个promise

如下 image.png

行不通的思路

  1. 期间问了下同事 ,他说你返回一个空的promise不会报错(事实证明会报错,他吹牛逼)

  2. 也想过加入一个闭包 让参数存起来去判断,感觉做复杂了

  3. 用小程序请求方法的abort()改动太多了,不好(太懒)

所以 参考了下axios的拦截器

想了想 最好的解决方法是:

如果是重复的接口就不去请求

实现结果

- 在全局变量里面加一个临时http记录 记录上一个接口

image.png

- 在请求的方法里加一个判断

image.png

  1. 判断是否要防抖debounce 是不是post请求
  2. 判断一下全局变量里的url和当前url一样不 时间是不是小于500ms
  3. 如果是重复的 返回一个 promise
  4. 如果不是重复的记录一下临时的Url参数和时间

总结:

总体实现起来还是断断续续想了2天 主要是要结合项目和小程序

如果大家有什么好方法也可以教教我