Angular 使用try-catch with-pipe和map处理角度错误
如何返回错误并将其发送到组件ts,以便用户能够检测到错误是什么?下面的代码是一个登录功能 我希望从API返回一条错误消息,返回组件ts,并将其显示为角材质toastAngular 使用try-catch with-pipe和map处理角度错误,angular,error-handling,rxjs,observable,try-catch,Angular,Error Handling,Rxjs,Observable,Try Catch,如何返回错误并将其发送到组件ts,以便用户能够检测到错误是什么?下面的代码是一个登录功能 我希望从API返回一条错误消息,返回组件ts,并将其显示为角材质toast signIn(payload: signInRequestPayload): Observable<Account> { try { return this.query({ document: login_user payload, }).pipe( map((result: any)
signIn(payload: signInRequestPayload): Observable<Account> {
try {
return this.query({
document: login_user
payload,
}).pipe(
map((result: any) => {
console.log(result);
if (result.data.length) {
return result.data[0] as Account;
}
throw Error("")
})
);
} catch (error) {
throw Error(`Unable to retrieve user account`);
}
signIn(有效负载:signInRequestPayload):可观察{
试一试{
返回此.query({
文档:登录用户
有效载荷,
}).烟斗(
地图((结果:任意)=>{
控制台日志(结果);
if(result.data.length){
返回结果。数据[0]作为科目;
}
抛出错误(“”)
})
);
}捕获(错误){
抛出错误(`无法检索用户帐户');
}
}我们可以在
映射中抛出一个错误,订户可以处理该错误
signIn(payload: signInRequestPayload): Observable<Account> {
return this.query({
document: login_user,
payload,
}).pipe(
map((result: any) => {
if (result.data.length) {
return result.data[0] as Account;
} else {
throw new Error('...');
}
});
);
}
删除try catch。这可能会有帮助:我收到一个错误“Type“Subscription”缺少类型“Observable”中的以下属性:\u isScalar、source、operator、lift等6。“当我将try-catch替换为catchError时,您可以显示更新的代码吗?我刚刚删除了try-catch,然后通过subscripte返回(使用catchError格式)在哪里可以添加订阅?谁在调用signIn
方法?我想他们是在订阅它。
signIn.subscribe(response => {/* successful response */}, error => {/* error response */});