Serialize asynchronous calls.
$ npm install @sealsystems/droddel
First you need to add a reference to seal-droddel within your application.
const droddel = require('@sealsystems/droddel');
To actually throttle a function, call
droddel and hand over the function that shall be throttled.
E.g., if you want to serialize read access to a file, hand over a function that does the actual reading and returns its result as a promise:
const readFile = util.promisify(fs.readFile); const throttledRead = droddel( async () => await readFile('/etc/passwd'));
To then read the file, simply call
const result = await throttledRead();
If you call
throttledRead while it is already being run, the new call gets delayed.
Running the build
To build this module use roboter.