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: