Estoy extremadamente confundido por qué el siguiente código devuelve lo que hace cuando lo escribo usando el encadenamiento de promesas y la sintaxis async/await:
function log() { console.log("Hello from inside second await") } async function test() { await console.log("Hello from first await"); await setTimeout(log, 1000); await console.log("Hello from third await"); } test(); console.log('Where does this occur?') Pensé que la palabra clave await hacía que el código fuera asíncrono. ¿Por qué el first await se imprime en la consola instantáneamente antes que console.log en el subproceso principal? Además, ¿por qué la segunda espera ocurre después de la tercera? ¿No es el propósito de await asegurarse de que existan datos importantes para funciones futuras antes de que se ejecuten? Esto no tiene sentido para mí, la ayuda sería muy apreciada.
La función asíncrona significa que se ejecutará en algún momento. Más de las funciones asíncronas de JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function