Back to Basics: Running Promises in Serial with Array.reduce()
const tasks = getTaskArray();return tasks.reduce((promiseChain, currentTask) => { return promiseChain.then(chainResults => currentTask.then(currentResult => [ ...chainResults, currentResult ] ) );}, Promise.resolve([])).then(arrayOfResults => { // Do something with all results});