umi-request
umi-request copied to clipboard
怎么正确的调用isCancel并传参
我在 request的拦截器给每个请求加上了cancelToken
function addPending(config) {
const pendingKey = getPendingKey(config);
config.cancelToken = config.cancelToken || new Reqs.CancelToken((cancel) => {
if (!pendingMap.has(pendingKey)) {
pendingMap.set(pendingKey, cancel);
}
});
}
async function errHandler(response: Response, options: RequestOptionsInit, resJson: any) {
const res = resJson ? resJson : await response?.clone?.()?.json?.() || {}
console.log('isCancel', Reqs.isCancel(options), options)
if(Reqs.isCancel(options.cancelToken)){
console.log('Request canceled', options.message);
return
}
}
在response的时候 调用isCancel方法判断, 但每次都返回的false, 查看源码后,发现isCancel方法是判断传入的对象是否有__CANCEL__这个属性, 且__CANCEL__ == true
如上截图,传参是否应该为 .cancelToken.promise