async function delayedPromise(cb) {
const delay = () => new Promise(resolve => setTimeout(resolve, 3000));
const result = await Promise.all([cb(), delay()]);
return result[0];
}
async function runPromisesInSequence(promises) {
for (let promise of promises) {
console.log(await delayedPromise(promise), new Date());
}
}
const pr1 = () => new Promise(res => setTimeout(() => res('r1'), 1000));
const pr2 = () => new Promise(res => setTimeout(() => res('r2'), 5000));
const pr3 = () => new Promise(res => setTimeout(() => res('r3'), 0));
const y = [pr1, pr2, pr3];
runPromisesInSequence(y);
И еще, обратите внимание, когда вы пишете
const pr1 = new Promise(res => setTimeout(() => res('r1'), 1000));
Ваш setTimeout стартует в этот же момент. Т.е. вы их все три одновременно запускаете