Redux可观察(Epic)-在返回操作之前,先承诺两个承诺
我一直在努力完成以下任务。在我的React应用程序中,我使用的是redux可观察史诗 我有两个承诺,一个需要等待第二个,然后它才会启动Redux可观察(Epic)-在返回操作之前,先承诺两个承诺,redux,rxjs5,redux-observable,Redux,Rxjs5,Redux Observable,我一直在努力完成以下任务。在我的React应用程序中,我使用的是redux可观察史诗 我有两个承诺,一个需要等待第二个,然后它才会启动 import { map, mergeMap, catchError } from 'rxjs/operators'; import { of } from 'rxjs/observable/of'; import { fromPromise } from 'rxjs/observable/fromPromise'; ..... const promi
import { map, mergeMap, catchError } from 'rxjs/operators';
import { of } from 'rxjs/observable/of';
import { fromPromise } from 'rxjs/observable/fromPromise';
.....
const promise1 = Auth.getCredentials().then( credentials => {
return credentials
}
const promise2 = ( credentials ) => {
return doQuery(credentials, someData).then(function(data) {
// return success
}).catch(function(err) {
// reject error
});
}
因此,promise 2需要promise1的凭证,我很难知道如何使用observable/fromPromise等将这些项目“链接”在一起,以便的结果最终出现在“映射”或“捕获错误”结果中
在我的史诗中,我有这样的东西:
const searchEpic: Epic<RootAction, RootState> =
(action$, store) => action$.ofType(DO_QUERY)
.mergeMap(({payload}) => {
???????? - this is where Im stuck
const $stream = RESULT_OF_PROMISES.pipe(
map((response) => {
return actionCreators.success(..)
},
catchError(e => {
return of(actionCreators.failure(..));
}
)));
return $stream
});
const searchEpic:Epic=
(action$,store)=>action$。类型(DO\u查询)
.mergeMap({payload})=>{
-这就是我被困的地方
const$stream=管道的结果(
映射((响应)=>{
返回actionCreators.success(…)
},
捕捉错误(e=>{
返回(actionCreators.failure(..);
}
)));
返回$stream
});
谢谢大家!
promise1。那么(promise2)
不起作用了?@Oblosys。谢谢哈哈,显然我想得太多了。你让我走对了路。它基本上来自promise1.then(promise2)).pipe(地图…..我实际上不认为这会起作用,但它做得很好:)