【发布时间】:2021-11-02 14:48:48
【问题描述】:
我混合了嵌套的 Promise 和订阅,我只想做以下事情:
- 调用我的函数 bar() 并了解它是否完全成功,或者是否发生错误
目前的做法: 目前我的 bar() 返回一个布尔 Observable,我分别处理每个错误,对于通过 .catch 的 Promise,对于通过错误句柄的 rxjs Observable:
foo(): void {
this.bar.subscribe((data: boolean) => console.log('the function call bar() was ' + data));
}
bar(): Observable<boolean> {
let subject = new Subject<boolean>();
this.httpHandler.newFoo().subscribe(
(data) =>
this.bar(data)
.then((barData) =>
this.httpHandler.updateBar().subscribe(
(barData2) => subject.next(true),
(error) => subject.next(false)))
.catch(err => subject.next(false)),
(error) => subject.next(false));
return subject.asObservable();
}
显然这很混乱,而且看起来有点过分,只是为了了解 bar() 函数调用是否在没有任何错误的情况下完成。有没有更好的方法来完全处理嵌套错误?
提前致谢
【问题讨论】:
标签: angular typescript promise rxjs observable