使用fromPromise时如何处理拒绝承诺(rxjs5.5)
我在写以下redux observable epic时,找不到处理拒绝承诺的方法。我如何处理使用fromPromise时如何处理拒绝承诺(rxjs5.5),rxjs,rxjs5,redux-observable,Rxjs,Rxjs5,Redux Observable,我在写以下redux observable epic时,找不到处理拒绝承诺的方法。我如何处理getDataFromPromise拒绝?我试过吹管、接球、接球等 (action$, store) => action$ .ofType(request().type) .mergeMap(action => fromPromise(getDataFromPromise(action.payload)).map(data => succe
getDataFromPromise
拒绝?我试过吹管、接球、接球等
(action$, store) =>
action$
.ofType(request().type)
.mergeMap(action =>
fromPromise(getDataFromPromise(action.payload)).map(data =>
success(data)
)
)
下面的内容应该根据示例进行操作,但事实并非如此
(action$, store) =>
action$.ofType(request().type).mergeMap(action =>
fromPromise(getDataFromPromise(action.payload))
.pipe(catchError(error => of(failure(error))))
.map(data => success(data))
)
如果您使用的是RXJSV6,那么就没有这样的“fromPromise”可观察的创建。请看这篇文章并由Ben Lesh回答: 相反,您应该使用
“from”
创建可观察对象
此外,我建议快速查看redux observable文档的示例,该示例展示了如何使用“ajax”帮助器使用catchError
操作符处理promise中的observable错误:
因此,一种更简单的修复代码的方法可能只是遵循这一点,并使用“ajax”包装getDataFromPromise函数。如果您使用的是RxJS v6,则不存在这种“fromPromise”可观察的创建。请看这篇文章并由Ben Lesh回答: 相反,您应该使用
“from”
创建可观察对象
此外,我建议快速查看redux observable文档的示例,该示例展示了如何使用“ajax”帮助器使用catchError
操作符处理promise中的observable错误:
因此,一种更简单的修复代码的方法可能就是遵循这一点,使用“ajax”包装getDataFromPromise函数。您可能需要提供getDataFromPromise的代码,我不确定promise是否拒绝了您可能会认为新的promise((resolve,reject)=>reject())。当promise解决时,没有问题,它可以工作,但我无法理解。您可能需要提供getDataFromPromise的代码,我不确定promise是否拒绝了您可能会认为新的promise((resolve,reject)=>reject())。当promise解决时,没有问题,它可以工作,但是我无法理解它。我使用的是rxjs5.5,所以我不能使用它。关于请求,它不是ajax,而是一些可能会失败的处理。我使用的是rxjs5.5,所以我不能使用它。关于请求,不是ajax,而是一些可能会失败的处理。
import { ajax } from 'rxjs/ajax';
const fetchUserEpic = action$ => action$.pipe(
ofType(FETCH_USER),
mergeMap(action => ajax.getJSON(`/api/users/${action.payload}`).pipe(
map(response => fetchUserFulfilled(response))
catchError(error => of({
type: FETCH_USER_REJECTED,
payload: error.xhr.response,
error: true
}))
))
);