UNPKG

@choerodon/master

Version:
51 lines (41 loc) 1.8 kB
import axios from 'axios'; import get from 'lodash/get'; import { axiosRoutesCancel } from "../instances"; import getMark from "../utils/getMark"; export function routeCancelRequestSuccessInterceptor(config) { var tempConfig = config; var enabledCancelRoute = get(tempConfig, 'enabledCancelRoute'); if (enabledCancelRoute) { var cancelRouteKey = (tempConfig === null || tempConfig === void 0 ? void 0 : tempConfig.cancelCacheKey) || getMark(config); var CancelToken = axios.CancelToken; var source = CancelToken.source(); tempConfig.cancelToken = source.token; // 将config赋值cancelCacheKey,避免了后续transformRequest重写了params会导致response拦截器里头getMark获取到的标识会和本次的不一样 tempConfig.cancelCacheKey = cancelRouteKey; axiosRoutesCancel.set(cancelRouteKey, { cancel: source.cancel, name: cancelRouteKey // routePath: window.location.hash.split('?')[0].replace(/#/, ''), }); } return tempConfig; } export function routeCancelResponseSuccessInterceptor(response) { var config = get(response, 'config'); var enabledCancelRoute = config.enabledCancelRoute; var cancelCacheKey = config.cancelCacheKey || getMark(config); if (enabledCancelRoute) { axiosRoutesCancel["delete"](cancelCacheKey); } return response; } export function routeCancelResponseFailedInterceptor(error) { var config = error.config; var enabledCancelRoute = get(config, 'enabledCancelRoute'); var cancelCacheKey = get(config, 'cancelCacheKey') || getMark(config); if (enabledCancelRoute) { axiosRoutesCancel["delete"](cancelCacheKey); } // 如果是主动取消了请求,做个标识 if (axios.isCancel(error)) { return new Promise(function () {}); } return Promise.reject(error); }