[Angular] Ngrx/effects, Action trigger another action

时间:2024-01-15 12:32:50
@Injectable()
export class LoadUserThreadsEffectService { constructor(private action$: Actions, private threadsService: ThreadsService) {
} @Effect()
userThreadsEffect$: Observable<Action> = this.action$
.ofType(LOAD_USER_THREADS_ACTION)
.switchMap((action) => this.threadsService.loadUserThreads(action.payload))
.map((allUserData) => new LoadUserThreadsSuccess(allUserData)); @Effect()
userSelectedEffect$: Observable<Action> = this.action$
.ofType(USER_SELECTED_ACTION)
.map((action) => new LoadUserThreadsAction(action.payload))
}

For the first Effect,

LOAD_USER_THREADS_ACTION

will trigger another action:

.map((allUserData) => new LoadUserThreadsSuccess(allUserData));

Second effect:

.ofType(USER_SELECTED_ACTION)

will trigger another action:

.map((action) => new LoadUserThreadsAction(action.payload))