[英]Promise to Observable does not catch error correctly
我有以下功能。 我从中删除了不必要的代码,以使其更易于阅读。
add() {
const listingId = 'xyz';
const promise = new Promise((resolve, reject) => {
reject(Error(`error msg`));
});
return from(promise).pipe(
map(() => listingId),
catchError(error => of(error.message))
);
}
我正在订阅这样的可观察对象:
this.service.add().subscribe(
listingId => {
console.log(`listingId:`, listingId);
},
error => {
console.log(`Error:`, error);
},
() => {
console.log(`Completed`);
}
);
问题在于错误是在next()而不是error()中捕获的。 控制台输出为:
listingId: error msg
Completed
它应该是:
Error: error msg
我究竟做错了什么?
在这一行中catchError(error => of(error.message))
使用catchError
捕获错误,并且在流切换到of(error.message)
, catchError
类似于switchMap
,您处理错误并切换到另一个可观察到的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.