Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Node.js assincrono ?

Tenho uma dúvida, O Node.js só é assíncrono porque o Javascript, qdo usado com callback, já consegue ser assíncrono tbm ?

Obrigado

4 respostas
solução!

Oi Felipe, não. Ele usa os callbacks do javascript para invocar os códigos em função das respostas assincronas. Por exemplo: vc realizou uma query no banco e aí, quando o resultado tiver pronto ele precisa chamar um código passando o resultado.. Aí entra seu callback.

Ainda não entendi bem essa questão, pois para ser ser assíncrono ele não teria que abrir outra thread, quando executada a função que vc está passando o callback? É isso o que ocorre ou o Node espera todo escopo atual finalizar para executar aquela função... então criaria uma pilha de execuções em seguida..

Denis, ele não cria uma pilha, pois isso faria com que existisse uma determinada "ordem de execução" o que na pratica não acontece. Para você entender mais de forma mais fácil, pense que para cada função e para cada callback é definida uma thread, sendo que as threads de funções executadas possuem uma referência a thread de callback e apenas quando função termina, a thread de callback é instanciada e executada.

No caso de função que executam operações de I/O é como se ao final da operação a função principal recebesse um signal do sistema externo e com isso instanciasse a thread de referência, ou seja, a função de callback.

Espero que possa ter te ajudado a entender melhor.

Dennis, recomendo assistir este vídeo para entender um pouco mais como funciona o event loop do Node: https://www.youtube.com/watch?v=KtDwdoxQL4A