@hzab/data-model 1.7.3 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/axios.js +33 -11
- package/src/data-model.js +5 -1
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
package/src/axios.js
CHANGED
|
@@ -50,10 +50,12 @@ export function setAxios(axiosList) {
|
|
|
50
50
|
* axios 守卫
|
|
51
51
|
* @param {Function} cb
|
|
52
52
|
* @param {Function} errCb
|
|
53
|
+
* @param {Object} opt
|
|
54
|
+
* @param {Object} opt.replaceErrCb 直接替换回调函数
|
|
53
55
|
*/
|
|
54
|
-
export function setAxRequest(cb, errCb) {
|
|
56
|
+
export function setAxRequest(cb, errCb, opt = {}) {
|
|
55
57
|
temp.axiosList?.forEach((_ax) => {
|
|
56
|
-
_ax.interceptors.request.use(cb, errCb);
|
|
58
|
+
_ax.interceptors.request.use(cb, handleErrCb(errCb, { logPrefix: "Error axios response: ", ...opt }));
|
|
57
59
|
});
|
|
58
60
|
}
|
|
59
61
|
|
|
@@ -61,20 +63,40 @@ export function setAxRequest(cb, errCb) {
|
|
|
61
63
|
* 请求到结果的拦截处理
|
|
62
64
|
* @param {Function} cb
|
|
63
65
|
* @param {Function} errCb
|
|
66
|
+
* @param {Object} opt
|
|
67
|
+
* @param {Object} opt.replaceErrCb 直接替换回调函数
|
|
64
68
|
*/
|
|
65
|
-
export function setAxResponse(cb, errCb) {
|
|
69
|
+
export function setAxResponse(cb, errCb, opt = {}) {
|
|
66
70
|
temp.axiosList?.forEach((_ax) => {
|
|
67
|
-
_ax.interceptors.response.use(
|
|
68
|
-
cb,
|
|
69
|
-
errCb ||
|
|
70
|
-
((error) => {
|
|
71
|
-
console.error("Error axios response: ", error);
|
|
72
|
-
return Promise.reject(error);
|
|
73
|
-
}),
|
|
74
|
-
);
|
|
71
|
+
_ax.interceptors.response.use(cb, handleErrCb(errCb, { logPrefix: "Error axios response: ", ...opt }));
|
|
75
72
|
});
|
|
76
73
|
}
|
|
77
74
|
|
|
75
|
+
/**
|
|
76
|
+
* 处理错误回调函数
|
|
77
|
+
* @param {Function} errCb
|
|
78
|
+
* @param {Object} opt
|
|
79
|
+
* @param {Object} opt.replaceErrCb 直接替换回调函数
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
export function handleErrCb(errCb, opt) {
|
|
83
|
+
const { replaceErrCb, logPrefix } = opt || {};
|
|
84
|
+
const isFn = typeof errCb === "function";
|
|
85
|
+
|
|
86
|
+
if (replaceErrCb && isFn) {
|
|
87
|
+
return errCb;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return (error) => {
|
|
91
|
+
if (axios.isCancel(error)) {
|
|
92
|
+
console.info("axios 请求已取消:", error);
|
|
93
|
+
return Promise.reject(error);
|
|
94
|
+
}
|
|
95
|
+
console.error(logPrefix, error);
|
|
96
|
+
return isFn ? errCb() : Promise.reject(error);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
78
100
|
/**
|
|
79
101
|
* 设置 axios.defaults
|
|
80
102
|
* @param {string} key
|
package/src/data-model.js
CHANGED
|
@@ -459,7 +459,7 @@ class DataModel {
|
|
|
459
459
|
|
|
460
460
|
handleRes(response, resolve, reject) {
|
|
461
461
|
if (axios.isCancel(response)) {
|
|
462
|
-
|
|
462
|
+
console.info("errorHandler axios.isCancel", response);
|
|
463
463
|
return;
|
|
464
464
|
}
|
|
465
465
|
if (this.isResponse) {
|
|
@@ -504,6 +504,10 @@ class DataModel {
|
|
|
504
504
|
}
|
|
505
505
|
|
|
506
506
|
errorHandler(err, reject) {
|
|
507
|
+
if (axios.isCancel(err)) {
|
|
508
|
+
console.info("errorHandler axios.isCancel", err);
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
507
511
|
if (this.isResponse) {
|
|
508
512
|
reject(err);
|
|
509
513
|
return;
|