rxjs:switchMap 忽略错误
rxjs: switchMap ignores error
我不确定这是 rxjs 中的错误还是我遗漏了什么。当在 switchMap
中返回错误抛出 observable 时,主要 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
只会 'replace' Observable 和另一个?
在您订阅之前,Observable 链不会做任何事情。
doStuff() {
Observable.of('any observable').switchMap(() => {
return this.oops();
}).subscribe();
}
oops() {
return Observable.throw('doh');
}
请注意,switchMap()
的投影函数可能会抛出异常,并将作为 error
通知发送。所以你也可以只使用以下内容,结果是一样的:
oops() {
throw new Error('doh');
}
我不确定这是 rxjs 中的错误还是我遗漏了什么。当在 switchMap
中返回错误抛出 observable 时,主要 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
只会 'replace' Observable 和另一个?
在您订阅之前,Observable 链不会做任何事情。
doStuff() {
Observable.of('any observable').switchMap(() => {
return this.oops();
}).subscribe();
}
oops() {
return Observable.throw('doh');
}
请注意,switchMap()
的投影函数可能会抛出异常,并将作为 error
通知发送。所以你也可以只使用以下内容,结果是一样的:
oops() {
throw new Error('doh');
}