diff --git a/snippets/chain-async-functions.md b/snippets/chain-async-functions.md new file mode 100644 index 000000000..5962f29ff --- /dev/null +++ b/snippets/chain-async-functions.md @@ -0,0 +1,14 @@ +### Chain asynchronous functions + +Loop through an array of functions containing asynchronous events, calling `next` when each asynchronous event has completed. + +```js +const chainAsync = fns => { let curr = 0; const next = () => fns[curr++](next); next(); } +/* +chainAsync([ + next => { console.log('0 seconds'); setTimeout(next, 1000); }, + next => { console.log('1 second'); setTimeout(next, 1000); }, + next => { console.log('2 seconds');} +]) +*/ +```