Entendendo process.nextTick()
A função process.nextTick da Node.js interage com o laço de evento de uma maneira especial
Tabela de Conteúdos
A medida que tentas entender o laço de evento da Node.js, uma parte importante deste é a process.nextTick()
. Toda vez que o laço de evento demorar uma viagem completa, chamamos isto de um tiquetaque.
Quando passamos uma função para process.nextTick()
, instruímos o motor a invocar esta função no final da operação atual, antes do próximo tiquetaque do laço de evento começar:
O laço de evento está ocupado processando o código da função atual. Quando este operação terminar, o motor de JavaScript executam todas as funções passadas para nextTick
executam durante esta operação.
É a maneira que podemos dizer ao motor de JavaScript para processar uma função de maneira assíncrona (depois da função atual), mas o mais cedo possível, não enfileirá-lo.
A chamada de setTimeout(() => {}, 0)
executará a função no final do próximo tiquetaque, muito depois de quando usares nextTick()
que prioriza a chamada e executa-a apenas depois do início do próximo tiquetaque.
Use nextTick()
quando quiseres certificar-te de que na próxima iteração do laço de evento este código já foi executado.