axios 中断请求

时间:2022-09-02 11:07:37

1

    <button onclick="test()">click me</button>
<script src="https://unpkg.com/axios@0.18.0/dist/axios.js"></script> <script>
const l = console.log; async function test() {
const CancelToken = axios.CancelToken;
const source = CancelToken.source(); axios("http://localhost:5000/test", {
cancelToken: source.token,
})
.then(r => {
l(r.data);
})
.catch(err => {
if (axios.isCancel(err)) {
l(err.message);
} else {
console.error(err);
// handle error
}
}); source.cancel("abort。");
}
</script>

2

        const CancelToken = axios.CancelToken;
let cancel; axios("http://localhost:5000/test", {
cancelToken: new CancelToken(function executor(c) {
l(`请求结束前`);
cancel = c;
}),
})
.then(r => {
l(r.data);
})
.catch(err => {
if (axios.isCancel(err)) {
l(err.message);
} else {
console.error(err);
// handle error
}
}); cancel(`message`);