Una funzione che interrompe l'esecuzione dello script fino al termine.
Per esempio, se ho avuto una funzione nella mia lingua, che è stato utilizzato per scrivere in un file, in questo modo:
fwrite(file, "Contents");
print("Wrote to file!");
La dichiarazione print
verrebbe eseguito solo una volta che il file è stato scritto su disco . L'intero programma è arrestato su questa istruzione. Questo non è evidente per le piccole scrive abbastanza, ma immaginate ho avuto un enorme blob per scrivere sul file, quello che ha preso molti secondi:
fwrite(file, blob);
print("Wrote to file!");
La dichiarazione print
dovrebbe essere eseguito solo dopo pochi secondi di scrittura, e l'intero programma sarebbe stato fermato per quel tempo. In Node.js, questa roba viene eseguita in modo asincrono, utilizzando eventi e richiamate. Il nostro esempio diventerebbe:
fwrite(file, blob, function() {
print("Wrote to file!");
});
print("Do other stuff");
Dove il terzo parametro è una funzione da chiamare una volta che il file è stato scritto. L'istruzione print
situata dopo la funzione di scrittura verrà chiamata immediatamente dopo, indipendentemente dal fatto che il file sia stato scritto o meno. Quindi, se dovessimo scrivere un enorme blob sufficiente, l'uscita potrebbe essere simile a questo:
Do other stuff
Wrote to file!
Questo rende molto applictions veloce perché non siete in attesa di un messaggio del cliente, una scrittura di file o altro. È possibile continuare a elaborare i dati in modo parallelo. Questo è considerato da molti uno dei punti di forza di Node.js.