Entendendo process.nextTick()

A função process.nextTick da Node.js interage com o laço de evento de uma maneira especial

Autores do Artigo
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.

Um exemplo da ordem de eventos:

Saída: