Cuál es la diferencia entre:
await new Promise(resolve => setTimeout(resolve, 5000));
esperar setTimeout(resolver, 5000);
await setTimeout(resolve, 5000); no hace nada extra, es lo mismo que setTimeout(resolve, 5000);
await detendrá la ejecución del código de la función contenedora hasta que se resuelva una promesa. La función setTimeout no devuelve una promesa, no es una función async . Por lo tanto, await es redundante, no hace nada especial en este caso.
Su primer bit de código devuelve una promesa. Toma la función setTimeout heredada no basada en promesas y la convierte en un formulario de promesa. Luego espera esta forma de promesa.
Debe aprender acerca de las promesas para obtener una mejor comprensión de lo que está sucediendo. La clave a tener en cuenta aquí es la diferencia entre las funciones basadas en devolución de llamada (como setTimeout) y las funciones modernas basadas en promesas.