常規(guī)的axios取消請求方式:
v0.22.0及之后版本
const controller = new AbortController();
axios.get('/user/12345', {
signal: controller.signal
}).then(function(response) {
//處理錯誤
});
// 取消請求
controller.abort()
v0.22.0之前版本
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('/user/12345', {
cancelToken: source.token
}).catch(function (thrown) {
// 處理錯誤
});
// 取消請求(message 參數(shù)是可選的)
source.cancel('Operation canceled by the user.');
針對post請求并且設(shè)置了onUploadProgress的情況,上述代碼不起作用,需要用useState
const [controller, setController] = useState(new AbortController());
axios.get('/user/12345', {
signal: controller.signal
}).then(function(response) {
//處理錯誤
});
// 取消請求
controller.abort()
//解決下次不能發(fā)請求問題
setController(new AbortController())