Angular 如何为任何可观察对象实现共享(全局)捕获错误?
图像,我有下一个代码:Angular 如何为任何可观察对象实现共享(全局)捕获错误?,angular,typescript,rxjs,Angular,Typescript,Rxjs,图像,我有下一个代码: if (something) { return A; } else { return B; } A和B是可观测的 我想捕捉两者中的错误,并以相同的方式处理 如何实现这一点 现在我要写这样的东西: const errorHadler = ...; if (something) { return A.pipe( catchError(errorHandler) ) } else { return B.pipe(
if (something) {
return A;
} else {
return B;
}
A和B是可观测的
我想捕捉两者中的错误,并以相同的方式处理
如何实现这一点
现在我要写这样的东西:
const errorHadler = ...;
if (something) {
return A.pipe(
catchError(errorHandler)
)
} else {
return B.pipe(
catchError(errorHandler)
)
}
两个观测值是否可以只使用一个catchError?希望这将有助于:
getData(){
if (something) {
return A;
} else {
return B;
}
}
this.getData.subscribe(response=>
{
// if success do logic here
}, error=>{
// Have commonn error handling logic here
});
希望这会有帮助。希望这会有帮助:
getData(){
if (something) {
return A;
} else {
return B;
}
}
this.getData.subscribe(response=>
{
// if success do logic here
}, error=>{
// Have commonn error handling logic here
});
希望这有帮助。创建一个错误处理程序服务。通过设置providedIn:root将其作为一个单吨服务。在任何需要的地方调用此服务的errorHandler方法
@Injectable({
providedIn: 'root'
})
export class ErrorhandlerService {
errorHandler(){
//logic goes here
}
}
if (something) {
return A.pipe(
catchError(this.errorhandlerService.errorHandler)
)
} else {
return B.pipe(
catchError(this.errorhandlerService.nerrorHandler)
)
}
这种方法的优点是,您可以在整个应用程序中重用该服务。创建一个错误处理程序服务。通过设置providedIn:root,将其设置为单吨服务。在任何需要的地方调用此服务的errorHandler方法
@Injectable({
providedIn: 'root'
})
export class ErrorhandlerService {
errorHandler(){
//logic goes here
}
}
if (something) {
return A.pipe(
catchError(this.errorhandlerService.errorHandler)
)
} else {
return B.pipe(
catchError(this.errorhandlerService.nerrorHandler)
)
}
这种方法的优点是,您可以在整个应用程序中重用该服务。您尝试过这种方法吗
(condition ? A : B).pipe(catchError(errorHandler)).subscribe(() => {});
你试过这个吗
(condition ? A : B).pipe(catchError(errorHandler)).subscribe(() => {});
你可以在这种情况下实现拦截器。你可以在这种情况下实现拦截器。是的,这个想法帮助了我。谢谢。是的,这个主意对我有帮助。谢谢