我目前编写此脚本以在节点中运行:
console.log('Node starting...');
var fs = require('fs');
fs.readFile('./app.js', function(err, data){
// if(err) throw err;
console.log(data.toString());
});
我理解传递给readFile的函数(文件,回调(错误,数据)是一个回调函数,它会在收到数据参数时执行。
我的问题是,我对实际传递此函数的数据一无所知?
文档说明
回调传递两个参数(错误,数据),其中数据是 文件的内容。
究竟是什么传递了回调函数的参数?
答案 0 :(得分:2)
fs.readFile
函数获取数据,然后以数据作为参数调用回调函数。
你可以自己编写这样一个函数(事实上,你可能会更多地使用Node.js这样做),如下所示:
function readFile(filename, callbackFunction) {
var data;
// ...do some work to get the data...
if(somethingBadHappened) {
callbackFunction("An error occurred!")
return;
}
// success!
callbackFunction(null, data);
}
您就像使用fs.readFile
一样使用它:
function myCallback(err, data) {
console.log( data.toString() );
}
readFile( './myfile.txt', myCallback );
如果您愿意,可以阅读actual source of fs.readFile。它很短(但比我的例子复杂一点)!