РЕДАКТИРОВАТЬ У меня есть следующее =>
@Effect()
createMission$ = this.actions$.pipe(
ofType<featureActions.CreateMissionRequest>(featureActions.ActionTypes.CreateMissionRequest),
switchMap((action) =>
this.store$.pipe(select(MissionsStoreSelectors.getById(), {id : action.payload.routeId}))),
switchMap((mission) => this.dataService.createMission(this.APIMissionFromMissionRoute(mission)).pipe(
map(response => new featureActions.CreateMissionSuccess({response, mission})),
catchError((error: HttpErrorResponse) => {
return of(new featureActions.CreateMissionFailed({error}));
}),
)
)
);
сейчас нет сервера, но я фальсифицировал ответ с наблюдаемой
createMission(params: API_MODEL.IMissionAPI): Observable<API_MODEL.CreateMissionResponse> {
return new Observable(observer => {
setTimeout(() => {
observer.next({
result: {
status: 2
},
missionID: {
identifier: 41
}
});
observer.complete();
}, 120);
});
}
Дело в том, что моя вторая карта переключателей
switchMap((mission) => this.dataService.createMission(this.APIMissionFromMissionRoute(mission))
зацикливается это потому, что мой первый switchMap получает selectore с параметром, и когда мое состояние обновляется, он снова запускает мой второй switchmap.
Я хотел бы знать, есть ли способ получить мое текущее состояние другим способом.
Я пытался использовать последний, но мне нужно получить доступ к текущему действию action.payload, чтобы получить то, что я хочу, и я не могу передать действие с последним