【发布时间】:2020-12-23 09:42:13
【问题描述】:
我有一个合并监听几个事件并检索数据以响应服务,如果服务抛出错误,则不再监听事件 - 至少看起来如此,因为调试事件显示它们触发并且其他监听它们的组件会响应。我假设这是错误的结果,但由于我有一个 catch 错误,我无法弄清楚为什么会发生这种情况。
这是一个简化的代码示例:
ngOnInit(): void {
merge(event1, event2)
.pipe(
switchMap(event => {
return this.service.loadResults()
.pipe(catchError(() => {
return observableOf([]);
}));
}))
.subscribe(data => {
this.entityList = data;
});
}
其他没有帮助的尝试:
ngOnInit(): void {
merge(event1, event2)
.pipe(
switchMap(event => {
return this.service.loadResults();
})).pipe(
catchError(() => {
return observableOf([]);
})
)
)
.subscribe(data => {
this.entityList = data;
});
}
还有:
ngOnInit(): void {
merge(event1, event2)
.pipe(
switchMap(event => {
return this.service.loadResults();
}),
catchError(() => {
return observableOf([]);
}))
.subscribe(data => {
this.entityList = data;
});
}
【问题讨论】:
-
您是否通过控制台登录以确保执行此行 return observableOf([]);?
-
第一次出错时执行一次。
标签: angular error-handling event-handling