我不确定这是rxjs中的错误还是我错过了什么。当返回在switchMap
中抛出observable的错误时,主观察者不会抛出错误。
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
只会“替换”#39; Observable与另一个?
答案 0 :(得分:3)
Observable连锁店在您订阅之前不会做任何事情。
doStuff() {
Observable.of('any observable').switchMap(() => {
return this.oops();
}).subscribe();
}
oops() {
return Observable.throw('doh');
}
请注意,switchMap()
的投影功能可以抛出异常,并将其作为error
通知发送。所以你也可以使用以下内容,结果将是相同的:
oops() {
throw new Error('doh');
}