Here is a very simple library of pollers written in TypeScript. It uses async / await so if you want to transpile it to ES3 or ES5 you’ll need TypeScript 2.1 or higher.
I originally built this for Aurelia but I pulled out
what little framework code there was to make it compatible with any
frontend framework. It assumes you have a separate class to manage
requests which exposes a
get method to fetch with
GET and which
returns a promise for a value. In this example that class is called
BackendService but you can change that to suit your needs.
I built it on an abstract base so you can have implementations of various
poller strategies. I implemented two: a basic poller that calls a callback
with each result and stops if that callback returns
false, and a list
poller intended to incrementally gather a list of resources by some
identifier which stops when all requested resources have been received.
You should be able to easily add your own strategy. There’s a top-level
service containing factories for each strategy, which you can use with any
DI mechanism you might be using.
If you have any questions about this code, or suggestions, I’d love to hear from you.