Latest web development tutorials

Node.js Callback-Funktion

Direkt spiegelt Node.js asynchrone Programmierung der Rückruf ist.

Unter Berufung auf Rückruf asynchrone Programmierung zu erreichen, kann aber nicht sagen, dass nach dem Rückruf des asynchronen Programm.

Die Callback-Funktion wird nach der Beendigung der Task aufgerufen werden, verwendet Node viel Rückrufe, Knoten API alle Rückruffunktionen unterstützt.

Zum Beispiel können wir die Datei Seite, während der Durchführung anderer Befehle, nach dem Lesen des Dokuments abgeschlossen ist, werden wir Datei Inhalte als Argument an die Callback-Funktion zurückkehrt lesen. Bei der Durchführung von Code für Datei-I / O-Operationen nicht blockiert oder zu warten. Dies verbessert die Leistung der Node.js kann eine große Anzahl von gleichzeitigen Anforderungen verarbeiten.


Sperrcode Beispiele

Erstellen Sie eine Datei input.txt, lautet wie folgt:

本教程官网地址:www.w3big.com

Erstellen Sie main.js Datei wie folgt:

var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString());
console.log("程序执行结束!");

Der obige Code wird wie folgt ausgeführt:

$ node main.js
本教程官网地址:www.w3big.com

程序执行结束!

Non-Blocking-Code-Beispiele

Erstellen Sie eine Datei input.txt, lautet wie folgt:

本教程官网地址:www.w3big.com

Erstellen Sie main.js Datei wie folgt:

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("程序执行结束!");

Der obige Code wird wie folgt ausgeführt:

$ node main.js
程序执行结束!
本教程官网地址:www.w3big.com

Wir verstehen die obigen zwei Beispiele verschiedener Blockierungs- und nicht blockierende Anrufe. Nach der ersten Instanz der Datei gelesen wird, bevor das Programm ausgeführt wird. Die zweite Instanz müssen wir nicht warten, bis die vollständige Datei zu lesen, so dass der nächste Code kann zur gleichen Zeit ausgeführt werden, während die Datei zu lesen, erheblich die Leistung des Programms zu verbessern.

Somit wird durch Blockieren sie nacheinander ausgeführt wird, während nicht-blockierend nicht erforderlich ist, um, wenn Sie also die Callback-Funktion Parameter behandeln müssen, müssen wir in der Callback-Funktion zu schreiben.