Skip to content

Commit 6917d5d

Browse files
committed
封装一个错误的方法
1 parent 01c3a4f commit 6917d5d

File tree

7 files changed

+18
-30
lines changed

7 files changed

+18
-30
lines changed

package-lock.json

Lines changed: 0 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
"@fortawesome/fontawesome-free-solid": "^5.0.13",
1717
"@fortawesome/fontawesome-svg-core": "^1.2.21",
1818
"@fortawesome/vue-fontawesome": "^0.1.6",
19-
"async-catch-loader": "^2.0.5",
2019
"axios": "^0.19.0",
2120
"core-js": "^2.6.5",
2221
"element-ui": "^2.11.1",

src/decorators/index.ts

Whitespace-only changes.

src/decorators/tryDecorator.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/store/modules/user.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
import UserService from '@/servers/User';
2-
import { axiosResult } from '@/utils';
2+
import { errorCaptured } from '@/utils';
33

44
export default {
55
namespaced: true,
66
state: {},
77
mutations: {},
88
actions: {
99
async getAllUserApi() {
10-
try {
11-
const { code, message, result } = await UserService.getAllUser();
12-
return axiosResult(result, code, message, true);
13-
} catch (e) {
14-
return e;
15-
}
10+
const [err, result] = await errorCaptured(UserService.getAllUser)();
11+
return result;
1612
},
1713
},
1814
};

src/utils/error-captured.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1+
import { axiosResult } from './axios-result';
2+
13
/**
24
* 错误捕获的方法
35
* @param func
46
*/
5-
export const errorCaptured = async (func: () => void) => {
6-
try {
7-
const result = await func();
8-
return [null, result];
9-
} catch (e) {
10-
return [e, null];
11-
}
7+
export const errorCaptured = (func: () => void): any => {
8+
return new Proxy(func, {
9+
async apply(target, thisBinding, args) {
10+
try {
11+
const res: any = await target.apply(thisBinding, args);
12+
const { code, message, result } = res;
13+
return [null, axiosResult(result, code, message, true)];
14+
} catch (e) {
15+
return [e, Promise.resolve('')];
16+
}
17+
},
18+
});
1219
};

src/utils/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export * from './axios-request';
55
export * from './axios-method';
66
export * from './axios-result';
77
export * from './data-type';
8+
export * from './error-captured';

0 commit comments

Comments
 (0)