Promesa de JavaScript ES6 para el bucle [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Resolver promesas una tras otra (es decir, en secuencia)? 23 respuestas
for (let i = 0; i < 10; i++) {
    const promise = new Promise((resolve, reject) => {
        const timeout = Math.random() * 1000;
        setTimeout(() => {
            console.log(i);
        }, timeout);
    });

    // TODO: Chain this promise to the previous one (maybe without having it running?)
}

Lo anterior dará el siguiente resultado aleatorio:

6
9
4
8
5
1
7
2
3
0

La tarea es simple: asegúrese de que cada promesa se ejecute solo después de la otra (.then())

Por alguna razón, no pude encontrar una manera de hacerlo.

Probé las funciones del generador (yield), probé funciones simples que devuelven una promesa, pero al final del día siempre se trata del mismo problema:El bucle es sincrónico.

Conasíncrono Simplemente usaríaasync.series().

¿Cómo lo resuelves?

Respuestas a la pregunta(5)

Su respuesta a la pregunta