Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Redux observable epic连续执行几次操作,但只返回最后一次_Javascript_Reactjs_Redux_Rxjs_Redux Observable - Fatal编程技术网

Javascript Redux observable epic连续执行几次操作,但只返回最后一次

Javascript Redux observable epic连续执行几次操作,但只返回最后一次,javascript,reactjs,redux,rxjs,redux-observable,Javascript,Reactjs,Redux,Rxjs,Redux Observable,我有一个epic,它应该连续执行几次类型为VERIFY_INSURANCE_REQUEST的操作。switchMap块内的一切都很好(所有项目也都在进行),但只有最后一个项目进入map块,所以我只有一个成功调度的操作,而不是许多 function verifyInsuranceEpic(action$) { return action$.pipe( ofType(types.VERIFY_INSURANCE_REQUEST), switchMap((action) => {

我有一个epic,它应该连续执行几次类型为VERIFY_INSURANCE_REQUEST的操作。switchMap块内的一切都很好(所有项目也都在进行),但只有最后一个项目进入map块,所以我只有一个成功调度的操作,而不是许多

function verifyInsuranceEpic(action$) {
return action$.pipe(
    ofType(types.VERIFY_INSURANCE_REQUEST),
    switchMap((action) => {
        const { verifyInsuranceModel } = action;
        const promise = InsuranceApi.verifyInsurance(verifyInsuranceModel).then(result => {
            const returnResult = result && result.rejectReason === null;
            const actionResponse = {
                returnResult,
                key: verifyInsuranceModel.key
            }
            return actionResponse;
        })
        return from(promise); 
    }),
    map(result => {
        return verifyInsuranceSuccess(result)
    }),
    catchError(error => of(verifyInsuranceFailure(error)))
); 
}


有没有办法让所有响应都转到映射块?

如评论中所述,解决方案是将switchMap更改为concatMap。

这是因为您使用的是
switchMap
,如果您希望一个接一个地处理所有响应,请使用
concatMap
。如果您希望同时处理所有这些数据,请使用
mergeMap
。它可以工作。谢谢