axios cancel
v0.2.2
멋진 axios 라이브러리를 사용할 때 http 요청 취소를 단순화하세요
npm 사용:
npm install axios-cancel --save
axios-cancel
취소 가능한 약속 제안을 기반으로 하는 axios v1.5에 도입된 취소 API의 인터페이스를 단순화합니다.
import axios from 'axios' ;
import axiosCancel from 'axios-cancel' ;
axiosCancel ( axios , {
debug : false // default
} ) ;
...
// Single request cancellation
const requestId = 'my_sample_request' ;
const promise = axios . get ( url , {
requestId : requestId
} )
. then ( ( res ) => {
console . log ( 'resolved' ) ;
} ) . catch ( ( thrown ) => {
if ( axios . isCancel ( thrown ) ) {
console . log ( 'request cancelled' ) ;
} else {
console . log ( 'some other reason' ) ;
}
} ) ;
axios . cancel ( requestId ) ;
// aborts the HTTP request and logs `request cancelled`
동일한 requestId
사용하는 여러 후속 요청
...
const requestId = 'my_sample_request' ;
const promise1 = axios . get ( url , {
requestId : requestId
} )
. then ( ( res ) => {
console . log ( 'resolved promise 1' ) ;
} ) . catch ( ( thrown ) => {
if ( axios . isCancel ( thrown ) ) {
console . log ( 'request 1 cancelled' ) ;
} else {
console . log ( 'some other reason' ) ;
}
} ) ;
// another request with same `requestId`, before `promise1` resolution
const promise2 = axios . get ( url , {
requestId : requestId
} )
. then ( ( res ) => {
console . log ( 'resolved promise 2' ) ;
} ) . catch ( ( thrown ) => {
if ( axios . isCancel ( thrown ) ) {
console . log ( 'request 2 cancelled' ) ;
} else {
console . log ( 'some other reason' ) ;
}
} ) ;
// aborts the first HTTP request, and cancels the first promise
// logs `request 1 cancelled`
// logs `resolved promise 2`
requestId
가 다른 여러 요청, 모두 취소
...
const requestId1 = 'my_sample_request_1' ;
const promise1 = axios . get ( url , {
requestId : requestId1
} )
. then ( ( res ) => {
console . log ( 'resolved promise 1' ) ;
} ) . catch ( ( thrown ) => {
if ( axios . isCancel ( thrown ) ) {
console . log ( 'request 1 cancelled' ) ;
} else {
console . log ( 'some other reason' ) ;
}
} ) ;
const requestId2 = 'my_sample_request_2' ;
const promise2 = axios . get ( url , {
requestId : requestId2
} )
. then ( ( res ) => {
console . log ( 'resolved promise 1' ) ;
} ) . catch ( ( thrown ) => {
if ( axios . isCancel ( thrown ) ) {
console . log ( 'request 2 cancelled' ) ;
} else {
console . log ( 'some other reason' ) ;
}
} ) ;
axios . cancelAll ( ) ;
// aborts all HTTP request, and cancels all promises
// logs `request 1 cancelled`
// logs `request 2 cancelled`
axiosCancel(인스턴스: axios[, 옵션])
옵션
axios.cancel(requestId: 문자열[, 이유: 문자열])
axios.cancelAll([이유: 문자열])
MIT