console.log(`inicio`);
setTimeout(function(){
console.log(`primera function`);
}, 3000);
setTimeout(function(){
console.log(`segunda function`);
}, 0);
setTimeout(function(){
console.log(`tercera function`);
}, 0);
console.log(`fin`);
La salida seria
inicio
fin
segunda function
tercera function
primera function
porque????
node lo primero que hace es crear un main()en la cola de procesos
entonces
agrega a esta la primera sentencia
console.log.("inicio") y la ejecuta.
luego toma el bloque
setTimeout(function(){
console.log(`primera function`);
}, 3000);
y lo coloca tambien en la lista de procesos, la registra pero no la ejecuta
entonces la mueve a la pila de node apis.
hace los mismo con el segundo y tercer bloque SetTimeout
finalmente coloca la ultima sentencia console.log('fin') y como no es asincrona la ejecuta.
como no hay mas sentencias el metodo main termina()
mientras tanto el tiempo pasa y el 2do bloque ya esta listo para ejecutarse pero no se envia a la pila de procesos sino a la cola de callbacks, asi tambien el 3er bloque y el 1ero que era el que tenia mas segundos de espera.
ahora
node va a tomar el proceso que termino primero y lo llevara a ejecutar en la lista de procesos, y asi sucesivamente
No hay comentarios:
Publicar un comentario