当我们使用axios发送请求时,我们可以为请求配置一个取消令牌(token)。如果请求被取消,我们可以在catch()中捕获错误并执行相应的操作。然而,如果我们在请求被取消前就已经收到响应,那么我们需要在then()中检查取消状态并执行相应的操作。以下是一个示例代码:
import axios from 'axios';
// 取消令牌
const source = axios.CancelToken.source();
axios.get('/api/data', { cancelToken: source.token })
.then(response => {
if (response.status === 200) {
// 处理数据
}
})
.catch(error => {
if (axios.isCancel(error)) {
console.log('请求已被取消:', error.message);
} else {
console.log('发生错误:', error.message);
}
});
// 取消请求
source.cancel('请求被取消');
在这个例子中,我们创建了一个取消令牌(source),并将它传递给get()方法的cancelToken配置项。然后,在then()中检查响应的状态码,并在catch()中检查是否已经取消了请求。如果请求被取消,我们将会看到一个控制台输出,否则将看到一个错误的输出。最后,我们可以通过调用source.cancel()方法来取消请求。
上一篇:Axios去掉异步
下一篇:axios取消的请求无法重新启动