У меня есть следующий эффект:
@Effect()
bookingSuccess$: Observable<Action> = this.actions$.pipe(
ofType(BookingActionTypes.BOOK_SEAT_SUCCESS),
map((action: BookSeatSuccess) => action.payload.userUuid),
switchMap(userUuid => [
new SetConfirmation({confirmationType: ConfirmationType.Booking}),
new GetAllBookings({floorId: this.configService.getSelectedFloorId()}),
new HighlightUser({highlightedUser: userUuid})
])
);
Моя цель - отправить последнее действие с задержкой.
К сожалению, поместить его в свой собственный файл switchMap не работает, по крайней мере, так, потому что тогда все задерживается:
@Effect()
bookingSuccess$: Observable<Action> = this.actions$.pipe(
ofType(BookingActionTypes.BOOK_SEAT_SUCCESS),
map((action: BookSeatSuccess) => action.payload.userUuid),
switchMap(userUuid => {
// DOES NOT WORK, BECAUSE NOW ALL ACTIONS ARE DELAYED 5s
return of(new HighlightUser({highlightedUser: userUuid})).pipe(delay(5000));
}
switchMap(() => [
new SetConfirmation({confirmationType: ConfirmationType.Booking}),
new GetAllBookings({floorId: this.configService.getSelectedFloorId()})
])
);
Как я могу отправлять несколько действий и обрабатывать одно по-разному / асинхронно с задержкой?