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 pollify
Polls 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.rate
the rate with which to poll pollFnoptions.mode
the return type of pollFn- Can be
callback
,promise
, orreturn
for regular functions
- Can be
pollFn
the 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.