Skip to content

Instantly share code, notes, and snippets.

@JefClaes
Created March 27, 2014 20:49
Show Gist options
  • Select an option

  • Save JefClaes/9818345 to your computer and use it in GitHub Desktop.

Select an option

Save JefClaes/9818345 to your computer and use it in GitHub Desktop.
Reactive polling
var ticks = Observable.Interval(TimeSpan.FromSeconds(_settings.IntervalInSeconds));
var pollResults = Observable.Create<PollResult>(observer =>
{
var results = // do request
foreach (var result in results)
observer.OnNext(new PollResult(result));
return Disposable.Empty;
});
ticks.Subscribe(tick => pollResults.Subscribe(pollResult =>
{
// handle result
}));
@jansabbe
Copy link

I don't know the exact language/library, but I would try:
var poller = ticks.map(tick => return // do request)

If do request returns an Observable, you can also use flattenMap
var poller = ticks.flattenMap(tick => return Observable.create...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment