Redux可观察(Epic)-在返回操作之前,先承诺两个承诺

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

我一直在努力完成以下任务。在我的React应用程序中,我使用的是redux可观察史诗

我有两个承诺,一个需要等待第二个,然后它才会启动

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(地图…..我实际上不认为这会起作用,但它做得很好:)