当下拉框实时搜索,第一个字输入后,加载的数据量很大,第二个字输入后,数据量很小或者没有数据时,第一个接口返回的数据会覆盖第二个数据的搜索结果,优化处理(axios取消请求)

当接口下拉框实时搜索,第一个字输入后,加载的数据量很大,第二个字输入后,数据量很小或者没有数据时,优化处理
1. 引入axios
2. data中声明一个变量例如: isGetData: null
3.  remote-method="getattenMember"
4. getattenMember(search) {
      this.attenoptions = []
      this.attendeesList = []
      const CancelToken = axios.CancelToken;    // *;
    /*每次请求前,判断之前有没有请求,如果有请求,取消上次的请求,cancel()  */
      if( this.isGetData){
        this.isGetData.cancel('Operation canceled by the user.');
      }

      if (search) {
        this.remoteattenLoading = true
      this.isGetData= CancelToken.source()       
        get请求api({ search: search },  {
                  cancelToken: this.isGetData.token     // 传递给拦截器的config
        })
          .then((res) => {
            if (res.code === 0 && res.list && res.list.length>0) {
             //数据存储
            } else if (res.code != 401 && res.code != 0) {
              
            }
          })
          .finally(() => {
            this.remoteattenLoading = false
          })
      } else {
        this.attenoptions = []
      }
    },

5.export function getqxryListYdwApi(params, cancelToken) {
  return request({
    url: '****你的接口地址',
    method: 'get',
    params,
    ...cancelToken
  })

6. axios封装处
    service.interceptors.request.use(
    config => {
       config.headers['token'] = getToken()||''
       return config
    },
    error => {
        console.log(error) // for debug
        return Promise.reject(error)
    }
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

donghuzi1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值