【发布时间】:2021-05-24 05:34:08
【问题描述】:
我有一项服务可以进行 http 调用以保存到数据库,有时还会检索自定义异常。我的问题是如何通过行为主题恢复向表单报告的异常
我的服务:
data$ = new BehaviorSubject({
users: [],
create: false
});
constructor( }
dispatch(action: Action): Observable<true | { error: string; }> {
switch (action.type) {
case ActionTypes.USER_CREATE:
this.createUser(action.payload);
return of(true);
default:
return of(true);
}
}
private createUser(user: User){
this.http.post({body : user}).pipe(
map((result) => result),
catchError((err) => {
if (err.error?.title === 'Custom' && err.status === 400) {
////Get and return exception
return throwError(err);
} else {
return throwError(err);
}
})
)
.subscribe((response: any) => {
this.data$.next({...this.data$.value, create: true});
});
}
我的比赛:
this.userService.dispatch({ type: ActionTypes.USER_CREATE payload: user });
this.userService.data$.subscribe((data) =>{
console.log(data);;
this.router.navigate(['/users/user/list']);
});
只有在我没有例外的情况下才必须重定向到用户列表页面
【问题讨论】:
标签: angular error-handling service behavior