import axios from 'axios';
// 创建一个取消令牌源(cancel token source)
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
// 下拉框搜索函数
function search() {
// 获取输入值
const inputValue = document.getElementById('searchInput').value;
// 发起请求前取消上一个请求(如果还没有完成)
source.cancel('取消上一个请求');
// 创建新的取消令牌
const newSource = CancelToken.source();
// 将新令牌赋值给全局变量 source,以便于下次取消
source = newSource;
// 发起新的请求,并使用新的取消令牌
axios.get('你的搜索API', {
params: {
search: inputValue
},
cancelToken: source.token
})
.then(response => {
// 处理响应数据
console.log(response.data);
})
.catch(thrown => {
if (axios.isCancel(thrown)) {
console.log('上一个请求已被取消:', thrown.message);
} else {
// 处理其他错误
console.error(thrown);
}
});
}
// 绑定输入框的事件
document.getElementById('searchInput').addEventListener('input', search);