fix: 配置了catchError的请求,失败时没执行统一的errorCallback
This commit is contained in:
2
build/module/catchHandler.d.ts
vendored
2
build/module/catchHandler.d.ts
vendored
@@ -1,5 +1,5 @@
|
|||||||
import { IRequestOption, IUploadFileOption } from "../interface";
|
import { IRequestOption, IUploadFileOption } from "../interface";
|
||||||
declare type ThrowErrorType = 'upload-error' | 'logic-error' | 'http-error';
|
declare type ThrowErrorType = 'logic-error' | 'http-error';
|
||||||
interface ThrowError {
|
interface ThrowError {
|
||||||
type: ThrowErrorType;
|
type: ThrowErrorType;
|
||||||
res: any;
|
res: any;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
4
build/weRequest.min.js
vendored
4
build/weRequest.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "we-request",
|
"name": "we-request",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"description": "本工具通过拓展小程序的wx.request,让开发者通过简单的配置,实现自动管理登录态等功能",
|
"description": "本工具通过拓展小程序的wx.request,让开发者通过简单的配置,实现自动管理登录态等功能",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"登录态",
|
"登录态",
|
||||||
|
|||||||
@@ -1,18 +1,23 @@
|
|||||||
import { IRequestOption, IUploadFileOption } from "../interface";
|
import { IRequestOption, IUploadFileOption } from "../interface";
|
||||||
import errorHandler from "./errorHandler";
|
import errorHandler from "./errorHandler";
|
||||||
|
import config from '../store/config'
|
||||||
|
|
||||||
type ThrowErrorType = 'upload-error' | 'logic-error' | 'http-error'
|
type ThrowErrorType = 'logic-error' | 'http-error'
|
||||||
interface ThrowError {
|
interface ThrowError {
|
||||||
type: ThrowErrorType
|
type: ThrowErrorType
|
||||||
res: any
|
res: any
|
||||||
}
|
}
|
||||||
function catchHandler(e: ThrowError, obj: IRequestOption | IUploadFileOption, reject: (reason?: any) => void) {
|
function catchHandler(e: ThrowError, obj: IRequestOption | IUploadFileOption, reject: (reason?: any) => void) {
|
||||||
const { type, res } = e
|
const { type, res } = e;
|
||||||
|
|
||||||
|
// 如果有配置统一错误回调函数,则执行它(仅逻辑错误)
|
||||||
|
if (typeof config.errorCallback === "function" && type === 'logic-error') {
|
||||||
|
config.errorCallback(obj, res);
|
||||||
|
}
|
||||||
|
|
||||||
if (obj.catchError) {
|
if (obj.catchError) {
|
||||||
if (type === 'http-error') {
|
if (type === 'http-error') {
|
||||||
return reject(new Error(res.statusCode.toString()));
|
return reject(new Error(res.statusCode.toString()));
|
||||||
} else if (type === 'upload-error') {
|
|
||||||
return reject(new Error(res));
|
|
||||||
} else if (type === 'logic-error') {
|
} else if (type === 'logic-error') {
|
||||||
let msg = errorHandler.getErrorMsg(res);
|
let msg = errorHandler.getErrorMsg(res);
|
||||||
return reject(new Error(msg.content));
|
return reject(new Error(msg.content));
|
||||||
@@ -21,13 +26,13 @@ function catchHandler(e: ThrowError, obj: IRequestOption | IUploadFileOption, re
|
|||||||
return reject(e);
|
return reject(e);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (e.type) {
|
if (type) {
|
||||||
return errorHandler.logicError(obj, e.res);
|
return errorHandler.logicError(obj, res);
|
||||||
} else {
|
} else {
|
||||||
// 其他js错误
|
// 其他js错误
|
||||||
return reject(e);
|
return reject(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export { catchHandler }
|
export { catchHandler }
|
||||||
@@ -21,11 +21,6 @@ function logicError(obj: IRequestOption | IUploadFileOption, res: wx.RequestSucc
|
|||||||
const retry = () => request(obj).then(obj._resolve).catch(obj._reject);
|
const retry = () => request(obj).then(obj._resolve).catch(obj._reject);
|
||||||
doError(title, content, retry);
|
doError(title, content, retry);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果有配置统一错误回调函数,则执行它
|
|
||||||
if (typeof config.errorCallback === "function") {
|
|
||||||
config.errorCallback(obj, res);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getErrorMsg(res: wx.RequestSuccessCallbackResult | wx.UploadFileSuccessCallbackResult) {
|
function getErrorMsg(res: wx.RequestSuccessCallbackResult | wx.UploadFileSuccessCallbackResult) {
|
||||||
|
|||||||
Reference in New Issue
Block a user