Redux observable epic 连续采取一些行动,但 return 仅在最后一次
Redux observable epic takes few actions in a row but return only last
我有一部史诗,它应该连续进行几个 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。
我有一部史诗,它应该连续进行几个 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。