如何取消接口?

1.取消某个接口的请求

// 第一步,定义source
window.CancelToken = this.axios.CancelToken;
window.requestSource = window.CancelToken.source();
// 第二步,定义接口的cancelToken
this.axios.post('...', formData, {
    cancelToken: window.requestSource.token
})
// 第三步,取消接口
window.requestSource.cancel('cancel upload'); // cancel upload 打印在控制台
复制代码

2.取消某个指定请求

data () {
    return {
        requestList: []
    }
}

fn () {
    const CancelToken = this.axios.CancelToken;
    this.axios.post('...', formData, {
        cancelToken: new CancelToken(c => {
            this.requestList.push({
                id: 'x',
                cancel: c
            })
        })
    })
    
    for(let i = 0; i < this.requestList.length; i++) {
        if (this.requestList[i].id === 'x') {
            // 取消请求
            this.requestList[i].cancel();
        }
    }
}
复制代码

3.使用abort

npm install abort-controller -S

import Controller from 'abort-controller';

fn () {
    let abortController = new Controller();
    
    fetch('...', {
        method: 'POST',
        signal: abortController.signal
    })
    
    // 取消请求
    abortController.abort()
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享