protected controller: AbortController
protected signal: AbortSignal
constructor(props) {
super(props)
this.controller = new AbortController();
this.signal = this.controller.signal;
}
//对Promise封装
fetchSignal(promise): Promise<any> {
if (this.signal.aborted) {
return Promise.reject();
}
return promise().then(res => {
if (this.signal.aborted) {
throw new Error('')
}
return res
})
}
componentWillUnmount() {
this.controller.abort()
}
参考链接:https://developer.mozilla.org/zh-CN/docs/Web/API/FetchController