Files
30-seconds-of-code/snippets/chain-async-functions.md
2017-12-12 10:46:05 -06:00

560 B

Chain asynchronous functions

Loop through an array of functions containing asynchronous events, calling next when each asynchronous event has completed.

const chainAsync = fns => {
	let curr = 0; const next = () => fns[curr++](next); next()
}
chainAsync([
	next => { console.log('This happens at 0 seconds'); setTimeout(next, 1000) },
	next => { console.log('This happens at 1 second'); setTimeout(next, 1000) },
	next => { console.log('This happens at 2 seconds'); setTimeout(next, 1000) },
	next => { console.log('Done at 3 seconds!') }
])