Produces a stream of events by polling a provided function at a given rate. This rate is the minimum rate, not the exact rate (similar to setTimeout). The provided function is only polled when the previous execution has completed. This has the effect of making async calls execute in series.
- Can poll promises, callback functions, and regular functions.
- Pollify is non-blocking. Will continuously poll a synchronous function in a non-blocking way.
- Handles whether to use setTimeout or setImmediate for you.
npm install pollifyPolls are automatically started for you when you create them.
const Pollify = require('pollify');
function fn(arg1, arg2, cb) { ... }
let poll = Pollify({ rate: 1000, mode: 'callback' }, fn, arg1, arg2);Pollify(options, pollFn, arg1, arg2, ...)
options.ratethe rate with which to poll pollFnoptions.modethe return type of pollFn- Can be
callback,promise, orreturnfor regular functions
- Can be
pollFnthe function to be polledarg1, arg2, ...the arguments with which to call pollFn with
poll.on('data', (data, timestamp) => { ... });poll.on('error', (e) => { ... });poll.stop();
poll.start();Recently worked on a project where I needed to poll async functions in series. Made this for convenience and decided to share it.