La compréhension function (err, données) rappels

Donc je suis confus au sujet de l'utilisation de la fonction(err, données) rappel des œuvres, est le premier argument toujours un gestionnaire d'erreur?

Que sur les autres arguments si vous aviez quelque chose comme la fonction (x, y, z, a, b, c)?

Comment les données de fs.readFile passer de la première ligne de code à la dernière ligne de code? Ou en d'autres termes, comment la sortie de fs.readFile se mettre dans les données d'argument?

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

Je pourrais remplacer function (err, données) en fonction de (x, y) et la fonction (x, y, z, a, b, c)

Mais seulement le deuxième argument de travaux (données et y), est-ce juste la syntaxe de javascript rappels?

Par exemple, c'est du code qui fonctionne de manière asynchrone lire un fichier et imprimer le nombre de lignes données d'un fichier:

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);
  • La signature de rappel est déterminé par l'appel de la fonction -- readFile dicte un 2 paramètre de rappel. Pas de magie ici.
  • Merci Joe! Je pense que je overanalyzed cela, mais il m'a vraiment aidé à comprendre!
InformationsquelleAutor enducat | 2013-12-18