I have update my Angular app and now I need to convert some code. What is the translation from @Effect
to createEffect
for the following code, please?
@Effect()
getTasks$ = this.actions$.pipe(
ofType(taskActions.LOAD_ACCOUNTS_TASKS),
switchMap(() => {
return this.rest.get(`${tasksUrl}`).pipe(
map((response) => new taskActions.LoadTasksSuccess(response)),
catchError((err: HttpErrorResponse) => of(err.status === 401 ?
new oauthActions.FailedRequestWith401(new taskActions.LoadTasks()) :
new taskActions.LoadTasksFail()
))
);
})
);
There is not much mystery to it, you just wrap it actions observable in a createEffect
factory function:
getTasks$ = createEffect(() =>
this.actions$.pipe(
ofType(taskActions.LOAD_ACCOUNTS_TASKS),
switchMap(() =>
this.rest.get(`${tasksUrl}`).pipe(
map((response) => new taskActions.LoadTasksSuccess(response)),
catchError((err: HttpErrorResponse) =>
of(
err.status === 401
? new oauthActions.FailedRequestWith401(new taskActions.LoadTasks())
: new taskActions.LoadTasksFail()
)
)
)
)
)
);