I have this effect, and I\'m trying to use timer to poll for data every x seconds. But I can\'t figure out how timer is supposed to interact with the data streams. I tried a
This should work (i have tested it). Please add this top of the switchMap
. The key operator here is the mapTo
. This operator will map the incoming value of the interval into the payload.
switchMap((action$: appActions.GetPlotDataAction) =>
interval(5000).pipe(mapTo(action$))
);
Update (hint):
- If you want to start immediately with the polling and then each {n}ms you can use the startWith
operator or the timer
observable
switchMap((action$: appActions.GetPlotDataAction) =>
interval(5000).pipe(startWith(0), mapTo(action$))
);
or
switchMap((action$: appActions.GetPlotDataAction) =>
timer(0, 1000).pipe(mapTo(action$))
);