Callbacks & Callback Hell
What pattern does this implementation demonstrate?
function sequence(tasks, finalCallback) {
const results = [];
function next(index) {
if (index === tasks.length) {
return finalCallback(null, results);
}
tasks[index]((err, result) => {
if (err) return finalCallback(err);
results[index] = result;
next(index + 1);
});
}
next(0);
}