我不确定这是rxjs中的bug还是遗漏了什么。当返回在switchMap中可观察到的抛出错误时,主要可观察到的错误不会抛出。
export class AppComponent {
constructor() {
this.doStuff();
}
doStuff() {
Observable.of('any observable').switchMap(() => {
return this.oops();
});
}
oops() {
return Observable.throw('doh');
}
}下面是一个柱塞:https://plnkr.co/edit/f6dgGe3qvwX1Myn3PRfR
控制台中没有引发错误。为什么会这样呢?我以为switchMap会用另一个“替代”可观察到的?
发布于 2017-03-22 14:53:21
在你订阅之前,这条可观察的链是不会做任何事情的。
doStuff() {
Observable.of('any observable').switchMap(() => {
return this.oops();
}).subscribe();
}
oops() {
return Observable.throw('doh');
}注意,switchMap()的投影函数可以抛出异常,它将作为error通知发送。因此,您也可以使用以下内容,结果将是相同的:
oops() {
throw new Error('doh');
}https://stackoverflow.com/questions/42954976
复制相似问题