Funktionsrückrufe (Fehler, Daten) verstehen

Ich bin verwirrt darüber, wie der Funktionsrückruf (err, data) funktioniert. Ist das erste Argument immer ein Fehlerhandler?

Was ist mit den verbleibenden Argumenten, wenn Sie so etwas wie Funktion (x, y, z, a, b, c) hatten?

Wie werden die Daten von fs.readFile von der oberen Codezeile zur unteren Codezeile übertragen? Oder mit anderen Worten, wie wird die Ausgabe von fs.readFile in das Datenargument eingefügt?

fs.readFile(pathToFile, function (err, **data**) {
    bufferString = **data**.toString();

Ich könnte die Funktion (err, data) durch die Funktion (x, y) und die Funktion (x, y, z, a, b, c) ersetzen

Aber nur das zweite Argument funktioniert (data und y). Ist dies nur die Syntax von JavaScript-Rückrufen?

Dies ist beispielsweise ein Arbeitscode, um eine Datei asynchron zu lesen und die Anzahl der Zeilen zu drucken, die einer Datei zugewiesen wurden:

var fs = require('fs');
var pathToFile = process.argv[2];
var bufferString, bufferStringSplit;

function counter(callback) {
  fs.readFile(pathToFile, function (err, data) {
    bufferString = data.toString();
    bufferStringSplit = bufferString.split('\n');
    callback();
  });
}

function logMyNumber() {
  console.log(bufferStringSplit.length-1);
}

counter(logMyNumber);

Antworten auf die Frage(4)

Ihre Antwort auf die Frage