axios新方式中断请求
文档:GitHub - axios/axios: Promise based HTTP client for the browser and node.js
我看了一下api,文档:AbortSignal - Web API 接口参考 | MDN,AbortController - Web API 接口参考 | MDN
这家伙是个只读属性,咋办?方法总是有的,把控制器定在外面为空,用的时候再设置
let controller = null//在外面定一个控制器,设置为空
document.getElementById('one').onclick = async () => {
try {
// 如果控制器存在,说明有上个请求,就它取消并设置为空
if (controller) {
controller.abort()
controller = null
}
//没有的话就到这一步
controller = new AbortController()
let res = await request({
url: "/posts",
signal: controller.signal
})
console.log(res);
} catch (error) {
console.log(error);
}
}
document.getElementById('two').onclick = () => {
if (controller) {
controller.abort()
controller = null
} else {
console.log('请求为空,无法请求');
}
}