文章
问答
冒泡
搜索时,第一个请求还没有响应,第二个请求的响应先到了,导致数据被覆盖

方案一、axios cancelToken

import client, { getApiUrlWithParams } from '@/utils/request';
import axios, { CancelTokenSource } from 'axios';

let cancelToken: CancelTokenSource;

const API_BASE_URL = '/api/xxxxxxx/xxxxxx';

export const getQueryApi = (query: string) => {
  if (cancelToken) {
    cancelToken.cancel('取消重复请求');
  }
  cancelToken = axios.CancelToken.source();
  const options = { cancelToken: cancelToken.token };
  const requestUrl = getApiUrlWithParams(`${API_BASE_URL}/search/`, {
    query,
  });
  return client.get(requestUrl, {}, options);
};

方案二、变量作用域

let query = ''
let queryList = []
getQueryData(value){
    query = value
    getQueryApi(value).then(res =>{
        if(query ==value){
            queryList = res.data
        }
    })
}
JavaSript

关于作者

小乙哥
学海无涯,回头是岸
获得点赞
文章被阅读