721 B
721 B
title, type, language, tags, cover, dateModified
| title | type | language | tags | cover | dateModified | |
|---|---|---|---|---|---|---|
| Chain async functions | snippet | javascript |
|
tram-car | 2020-09-15T16:28:04+03:00 |
Chains asynchronous functions.
- Loop through an array of functions containing asynchronous events, calling
nextwhen each asynchronous event has completed.
const chainAsync = fns => {
let curr = 0;
const last = fns[fns.length - 1];
const next = () => {
const fn = fns[curr++];
fn === last ? fn() : fn(next);
};
next();
};
chainAsync([
next => {
console.log('0 seconds');
setTimeout(next, 1000);
},
next => {
console.log('1 second');
setTimeout(next, 1000);
},
() => {
console.log('2 second');
}
]);