У меня есть эффект, когда в зависимости от того, что возвращается в данных, я могу пожелать отправить дополнительное действие.
Используя информацию из этого поста , я могу вернуть два действиячерез следующее ...
public getData$ = createEffect(() => this.actions$.pipe(
ofType(myDataActions.getData),
map(() => this.isPollingActive = true),
mergeMap(() =>
this.myService.getAllData()
.pipe(
tap(data => this.previousResultsTimeUtc = data.previousResultsTimeUtc),
mergeMap(data => [
currentDayActions.getCurrentShiftSuccess(data.currentDay),
myDataActions.getDataSuccess(data)
]),
catchError(err => of(myDataActions.getDataFail(err)))
))
));
Тем не менее, в идеале, я бы иногда хотел просто отправить одно действие,
например
...
mergeMap(data => [
if (data.currentDay !== undefined) // <-- how to do this
currentDayActions.getCurrentDaySuccess(data.currentDay),
myDataActions.getDataSuccess(data.data)
]),
Итак, я толькоЯ хочу отправить currentDayActions.getCurrentDaySuccess
, если я получу данные.
Конечно, выше приведен неверный синтаксис, но я не совсем понимаю, как получить это "если" внутри.
Любойочень признателен за помощь.
[ОБНОВЛЕНИЕ1]
Очень похожий пример этого здесь
Эффект, пытающийся сделатьто же самое в feature1/state/feature1.effects.ts