const wait = time => new Promise(r => setTimeout(r, time));
Если нужно подождать сверх того, что уже ждали - создаём новый промис:
wait(1000)
.then(() => { console.log(1); return wait(1000); })
.then(() => { console.log(2); return wait(1000); })
.then(() => { console.log(3); });
Чтобы не делать это вручную для каждого из значений, можно собрать их в массив:
[ 1, 2, 3 ].reduce((promise, n) => promise
.then(() => wait(1000))
.then(() => console.log(n))
, Promise.resolve());
// или
(async function(...args) {
for (const n of args) {
await wait(1000);
console.log(n);
}
})(1, 2, 3);