press-next
Version:
Vue3 组件库,支持 Composition API
37 lines (31 loc) • 1.05 kB
text/typescript
import { Toast } from '../../toast/index';
import type { IInterceptor } from '../types';
function $t(a: string) {
return a;
}
/**
* 处理网络错误提示
*/
export default class ShowNetworkErrorToastInterceptor implements IInterceptor {
interceptor(param: any, extra: any): Promise<[boolean, any]> {
if (param?.message) {
if (param.message.indexOf('timeout') > -1) {
param.msg = '接口超时,稍后试试吧';
}
if (param.message.indexOf('Network Error') > -1) {
param.msg = '网络不好,请稍后重试';
}
}
if (extra.showMsgToast) {
// 抛出异常错误,方便业务侧上报
// @ts-ignore
window.app?.$ebus?.emit('response-error-event', param);
// 特定错误才提示,避免用户看到莫名奇妙的错误提示
if (param?.message && (param.message.indexOf('timeout') > -1
|| param.message.indexOf('Network Error') > -1)) {
Toast?.showFail($t(param.msg));
}
}
return Promise.resolve([false, param]);
}
}