【发布时间】:2018-10-26 16:37:24
【问题描述】:
使用 Redux-Observable + RxJS + Axios 调用超时返回的错误不包含任何状态码等。整个错误响应整体为[TimeoutError: Timeout has occurred]。如何捕获该响应的错误以显示通知?史诗如下:
const fetchUserEpic = (action$, state$) =>
action$.pipe(
ofType('FETCH_USER'),
mergeMap(() =>
from(axios.get(`/user/`)).pipe(
timeout(5000),
map(response => ({
type: 'FETCH_USER_SUCCESS',
data: response.data
})),
catchError(error =>
of({
type: 'FETCH_USER_ERROR',
error
})
)
)
)
);
【问题讨论】:
-
如果因为
timeout(5000)而超时,则无法响应(这就是超时的原因)。 -
我明白了,但我认为 Axios 或 RxJs 会发回一个带有超时状态代码等的对象,以便可以轻松捕获它?如果没有,我必须检查错误消息是否包含“超时”一词以及是否显示超时图形,例如
-
是 RxJS 造成了超时。这与 Axios 完全无关。
-
好的,谢谢。这有助于了解这么多
标签: rxjs axios redux-observable