Rxjs6:无法处理异步函数中的错误

时间:2018-12-03 01:11:27

标签: rxjs rxjs6

getComments是异步功能。当它返回错误时,我想通过catchError处理它。但是我总是执行map(),而从不执行catchError

为什么以及如何解决此问题?

from(getComments(action.payload.url)).pipe(
  map((comments: IComments[]) => commentsActions.fetch.done({ params: action.payload.url, result: { comments } })),
  // TODO: 以下ではError handlingができない
  catchError(error => of(commentsActions.fetch.failed({ params: action.payload.url, error: { hasError: true } }))),
),

export const getComments = async (url: string) => {
  return await fetch(url)
    .then(response => response.json())
    .then(comments => comments)
    .catch((e: string) => throwError(e));
}

谢谢。

1 个答案:

答案 0 :(得分:0)