Есть пара вещей, которые неправильно начинать с
- Ошибка, которую вы получаете, заключается в том, что вам нужно
pipe(map(data => ...)
от import { map } from 'rxjs/operators'
. - Тогда вам нужнодобавьте
dispatch: false
, так как вы не возвращаете никаких действий, иначе вы застрянете в бесконечном цикле.
Два варианта
Эффект должен либо возвращать действие, либо dispatch: false
Вариант 1: Нет отправленного действия
@Effect({ dispatch: false })
loadTasks$: Observable<void> = this.actions$.pipe(
ofType(fromActions.ADD_TASK),
switchMap(() => this.taskService.GetTasks().pipe(
map(data => {
console.log(data);
})
)
));
Вариант 2: Операция отправки
@Effect()
loadTasks$: Observable<void> = this.actions$.pipe(
ofType(fromActions.ADD_TASK),
switchMap(() =>
this.taskService.GetTasks().pipe(
map(
(data: Task[]) => new SomeActionYouGot(data);
),
catchError(error =>
of(new SomeOtherActionThatIndicatesFailFor(data))
)
)
);