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.