
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
delay-promise
Advanced tools
A ES6 promise wrapper library to throttle and batch promises
const delayed = require('delay-promise');
// A sample promise which takes an argument
function promise(name) {
console.log('Begin task', name);
return new Promise(function(resolve, reject) {
setTimeout(function() {
console.log('Finish task', name);
return resolve();
}, 1000);
});
};
delayed.creator creates a wrapper function the promise which allows the delaying of the promise execution
const promiseCreator = delayed.creator(promise, 'promise param');
Both delayed.series and delayed.parallel accepts an array of delayed.creator objects
Sequentially execute an array of delayed creators with the delay of 1 second between each promise
delayed.series([
delayed.creator(promise, 'Series A'),
delayed.creator(promise, 'Series B'),
delayed.creator(promise, 'Series C')
], 1000).then((promisesArray) => {
// returns an array of resolved values of the promises just like Promise.all
});
To produce a throttled or staggered effect use delayed.parallel
Parallelly execute an array of delayed creators with the delay of 1 second between each promise
delayed.parallel([
delayed.creator(promise, 'Parallel A'),
delayed.creator(promise, 'Parallel B'),
delayed.creator(promise, 'Parallel C')
], 1000).then((promisesArray) => {
// returns an array of resolved values of the promises just like Promise.all
});
Use both parallel and series for throttling and batching
const batch1 = delayed.creator(delayed.parallel, [
delayed.creator(promise, 'batch task1'),
delayed.creator(promise, 'batch task2'),
delayed.creator(promise, 'batch task3')
], 1000); // 1 second delay between each parallel promise
const batch2 = delayed.creator(delayed.parallel, [
delayed.creator(promise, 'batch task4'),
delayed.creator(promise, 'batch task5'),
delayed.creator(promise, 'batch task6')
], 1000); // 1 second delay between each parallel promise
// 1 second delay between each batch
delayed.series([ batch1, batch2 ], 1000).then((batchArray) => {
// Array of batches
});
FAQs
A bluebird promise wrapper library to throttle and batch promises
We found that delay-promise demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.