one-by-one

Run async tasks one by one.
If you want to run async functions in parallel, check out same-time
.
:cloud: Installation
$ npm i --save one-by-one
:clipboard: Example
const oneByOne = require("one-by-one");
oneByOne([
cb => {
setTimeout(function () {
cb(null, "Hello World");
}, 1000);
}
, (cb, data) => {
console.log(data);
setTimeout(function () {
cb(new Error("Some error"));
}, 100);
}
, cb => {
cb(null, null);
}
], (err, data) => {
console.log(err, data);
});
oneByOne([
Math.random() > 0.5 ? next => {
console.log("Generated a random number greater than 0.5.");
next();
} : null
, cb => setTimeout(
() => cb(null, "Hello World")
, 1000
)
, (cb, prev) => setTimeout(
() => cb(null, prev.replace("World", "Mars"))
, 1000
)
], (err, data, message) => {
console.log(err, data, message);
});
:memo: Documentation
oneByOne(arr, cb)
Calls functions one by one and memorizes the results.
Params
- Array
arr
: An array of functions getting the callback parameter in the first argument and response arguments from the previous function call. - Function
cb
: The callback function called with an error (or null
) and the results array.
Return
- oneByOne The
oneByOne
function.
:yum: How to contribute
Have an idea? Found a bug? See how to contribute.
:moneybag: Donations
Another way to support the development of my open-source modules is
to set up a recurring donation, via Patreon. :rocket:
PayPal donations are appreciated too! Each dollar helps.
Thanks! :heart:
:scroll: License
MIT © Ionică Bizău