Я отправляю много событий, когда загружаю набор дронов.Я хотел бы, чтобы для каждого загруженного дрона отправлялось соединение со службой SSE, поэтому я делаю следующее
drones.forEach((drone) => {
console.log('dispatch', drone.id)
this.store$.dispatch(new UsedDronesStoreActions.OpenUsedDroneUpdatePositionChannelRequest({ droneId: drone.id, projectId : environment.projectId }));
});
Мой эффект
@Effect()
startStatusUpdate$ = this.actions$.pipe(
ofType<featureActions.OpenUsedDroneUpdateStatusChannelRequest>(featureActions.ActionTypes.OpenUsedDroneUpdateStatusChannelRequest),
concatMap((action) =>
this.droneDataService.openUsedDroneUpdateStatusChannel(action.payload).pipe(
map(result => { console.log('there', action.payload.droneId);}),
catchError((error: HttpErrorResponse) => { }),
)
)
);
вызывается только один раз
dispatch id1
dispatch id2
dispatch id3
there id1
===> no more
Я попытался выполнить concatMap, и на стенде switchMap don7t делать (concat показывает только первое значение, переключать последнее).
switchMap делает только последнее, потому что он отписался от предыдущего concatMap, не будет подписываться на другое, потому чтопервый не завершен ...
Есть ли кто-нибудь, кто подписывается на всех и смотрит их по отдельности?