[1,2,3,4,5,6].reduce(async(previousPromise, thing) => { await previousPromise return asyncOperation(thing) }, Promise.resolve())