Comprensione di process.nextTick()
Quando cerchi di capire il ciclo degli eventi di Node.js, una parte importante è process.nextTick()
. Ogni volta che il ciclo degli eventi compie un intero giro, lo chiamiamo tick.
Quando passiamo una funzione a process.nextTick()
, istruiamo il motore a eseguire questa funzione alla fine dell’operazione corrente, prima che inizi il prossimo tick del ciclo degli eventi:
Il ciclo degli eventi è occupato a elaborare il codice della funzione corrente. Quando questa operazione termina, il motore JavaScript esegue tutte le funzioni passate alle chiamate di nextTick
durante quell’operazione.
Questa è la nostra maniera di dire al motore JavaScript di elaborare una funzione in modo asincrono (dopo la funzione corrente), ma non appena possibile, senza metterla in coda.
Chiamare setTimeout(() => {}, 0)
eseguirà la funzione alla fine del prossimo tick, molto più tardi rispetto all’utilizzo di nextTick()
, che prioritizza la chiamata ed esegue la funzione appena prima dell’inizio del prossimo tick.
Usa nextTick()
quando vuoi assicurarti che nel prossimo ciclo degli eventi quella funzione sia già stata eseguita.
Un esempio dell’ordine degli eventi:
Output: