codestory

Das Konzept von Callback in NodeJS

View more Tutorials:

1- Was ist Callback ?

Um was ist Callback zu erklären, sehen wir ein Fall wie folgend :
Sie kommen zu das Geschäft um ein Lieblingsding zu kaufen. Der Geschäftsmitarbeiter sagt Ihnen, dass das Ding vergriffen ist. Sie lassen Ihre Handynummer und bitten um die Rückanruf wenn das Ding verfügbar ist. Danach können Sie ausgehen oder etwas machen und haben keine Sorge für das Geschäft nicht mehr, zum wenn Sie die Anruf vom Geschäft bekommen
Der Server NodeJS kann die Anforderungen (request) aus meheren Benutzer bekommen. Deshalb werden alle API vom NodeJS zur Verbesserung der Service-kapazität entwickelt um das Callback zu unterstützen. "callback" ist eine Funktion (function), die angeruft werden wird wenn NodeJs eine bestimmte Aufgabe (task) zu erledigen.

2- Zum Beispiel: NodeJS Callback

Im NodeJS werden API entwickelt um Callback zu unterstützen. Angenommen, Sie schreiben ein Programm um 2 Files zu lesen. Um das Ding zu tun, verwenden Sie das Modul  fs, das Sie 2 Funktion anbietet um die File readFile und readFileSync zu lesen. Wir werden den Unterschied zwischen 2 Funktionen kennen lernen

Blocking

readFileSync ist eine synchron die File lesende Funktion (synchronous), so wenn die Funktion gerade implementiert, wird sie das Programm der Implementation der nächsten Kode-linie blockieren.
blocking-example.js
var fs = require("fs");

// -----> Read file 1:
console.log("\n");
console.log("Read File 1");

var data1 = fs.readFileSync('C:\\test\\file1.txt');

console.log("- Data of file 1: ");
console.log(data1.toString());


// -----> Read file 2:
console.log("\n");
console.log("Read File 2");

var data2 = fs.readFileSync('C:\\test\\file2.txt');
console.log("- Data of file 2: ");
console.log(data2.toString());


console.log("\n");
console.log("Program Ended");
 
Öffnen Sie das Fenster CMD und implementieren die File  blocking-example.js.

node callback-examples/blocking-example.js
Und das ist das Ergebnis

Non Blocking

Sie sollen die Funktion readFile verwenden um die besser Leistung für das Programm zu erreichen. Diese Funktion liest die File asynchron (asynchronous), sie blockiert (non block) das Programm nicht, die nächten Kode-Linie zu implementieren. In die andere Seite wartet das Programm auf die Erledigung der Funktion. Wenn die Funktion aber ihre Aufgabe erledigt, wird sie auf die Funktion Callback aufrufen.

// Read a file Asynchronous.
fs.readFile('C:\\test\\file1.txt', aCallbackFunction );
Das volle Beispiel schauen
non-blocking-example.js
var fs = require("fs");

// A Callback function!
function readFinishedFile1(err, data)  {
   if (err) console.log(err);
   console.log("- Data of file 1: ");
   console.log(data.toString());
}

// A Callback function!
function readFinishedFile2(err, data)  {
   if (err) console.log(err);
   console.log("- Data of file 2: ");
   console.log(data.toString());
}

// -----> Read file 1:
console.log("\n");
console.log("Read File 1");

fs.readFile('C:\\test\\file1.txt', readFinishedFile1);

// -----> Read file 2:
console.log("\n");
console.log("Read File 2");

fs.readFile('C:\\test\\file2.txt', readFinishedFile2);

console.log("\n");
console.log("Program Ended \n");
Öffnen Sie das Fenster CMD und laufen die File non-blocking-example.js:
node callback-examples/non-blocking-example.js
Und das ist das Ergebnis, das Sie bekommen haben

View more Tutorials:

Vielleicht bist du interessiert

Das sind die Online-Courses außer der Website o7planning, die wir empfehlen. Sie können umsonst sein oder Discount haben.