¿Por qué se imprime el "tiempo de espera" por nodo antes de terminar cuando ejecuto el siguiente código?
const shouldNotPrint = async () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log('timeout') resolve('foo') }, 300) }) } shouldNotPrint() console.log('ended')Ejecutar el código anterior con el nodo 16.13.0 generará
> node src/index.js ended timeout¿Hay algún tipo de espera de nivel superior en el nodo esperando que se resuelvan todas las promesas antes de finalizar el proceso?
Para aclarar: no quiero terminar Node antes del final de mi promesa. Solo quiero entender, en un nivel bajo, el comportamiento del nodo y el bucle de eventos en ese caso. Entiendo la lógica de un tiempo de espera + promesa y por qué se imprimiría después de "terminar". La pregunta es por qué se muestra y por qué Node está esperando a que se muestre antes de finalizar el proceso.