繁体   English   中英

Promise to Observable无法正确捕获错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM