Skip to content

Commit 194b3ae

Browse files
committed
修好错误捕获的函数
1 parent 52cda75 commit 194b3ae

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

src/store/modules/user.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ export default {
77
mutations: {},
88
actions: {
99
async getAllUserApi() {
10-
const [err, result] = await errorCaptured(UserService.getAllUser, true)();
11-
return result;
10+
return await errorCaptured(UserService.getAllUser)();
1211
},
1312
},
1413
};

src/utils/error-captured.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import { axiosResult } from './axios-result';
22

33
/**
4-
* 错误捕获的方法
4+
* 错误捕获的方法,使用方式errorCaptured(UserService.getAllUser)(getAllUser函数需要传递的参数)
55
* @param func
66
*/
7-
export const errorCaptured = (
8-
func: () => void,
9-
isObj: boolean = false,
10-
): any => {
7+
export const errorCaptured = (func: () => void) => {
118
return new Proxy(func, {
129
async apply(target, thisBinding, args) {
1310
try {
14-
const res: any = await target.apply(thisBinding, args);
15-
const { code, message, result } = res;
16-
return [null, axiosResult(result, code, message, isObj)];
11+
return await target.apply(thisBinding, args);
1712
} catch (e) {
18-
return [e, Promise.resolve('')];
13+
const {
14+
data: {
15+
data: { error },
16+
},
17+
} = e;
18+
console.error(error);
1919
}
2020
},
2121
});

src/views/demo1/demo12/demo12.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
>使用vuex方法获取全部用户</el-button>
88
<el-button
99
type="primary"
10-
@click="getAllUserApi"
10+
@click="getUser"
1111
>直接获取全部用户</el-button>
1212
</div>
1313
</template>
@@ -26,15 +26,15 @@ export default class Demo12 extends Vue {
2626
* 直接在vue组件中使用axios请求接口
2727
*/
2828
private async getUser() {
29-
const result = await axios.get('/user?pageSize=10&pageNumber=1');
30-
console.log(result);
29+
const { code, message, result } = await axios.get('/user?pageSize=10&pageNumber=1');
30+
console.log(code, message, result);
3131
}
3232
3333
/**
3434
* 通过store统一调用接口
3535
*/
3636
private async vuexGetUser() {
37-
const { result } = await this.getAllUserApi();
37+
const result = await this.getAllUserApi();
3838
console.log(result);
3939
}
4040
}

0 commit comments

Comments
 (0)