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$))
);