Entendendo os retornos de chamada de função (err, dados)
Então, estou confuso sobre como funciona o retorno de chamada de função (err, dados), é o primeiro argumento sempre um manipulador de erro?
E os argumentos restantes se você tivesse algo como função (x, y, z, a, b, c)?
Como os dados de fs.readFile passam da linha superior do código para a linha inferior do código? Ou, em outras palavras, como a saída de fs.readFile é colocada no argumento de dados?
fs.readFile(pathToFile, function (err, **data**) {
bufferString = **data**.toString();
Eu poderia substituir função (err, dados) com função (x, y) e função (x, y, z, a, b, c)
Mas apenas o segundo argumento funciona (data e y), isso é apenas a sintaxe dos callbacks do javascript?
Por exemplo, este é o código de trabalho para ler de forma assíncrona um arquivo e imprimir o número de linhas dadas a um arquivo:
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);