什么是回调函数?
简单理解 :把方法作为一个参数 传递给另外一个方法 这种过程就叫做回调函数
拿(封装读文件的方法)举例说明: 方法封装的原则:【不要替调用者决定如何处理结果,而是应该把方法调用的结果,返回给调用者,让调用者决定如何处理数据】
function getContentByPath(path,callback) { fs.readFile 是一个异步方法 fs.readFile(path,'utf-8',(err,dataStr) => { if(err) return console.log('读取文件失败' + err.message) callback(null,dataStr) }) }具体理解:
我们调用者先预定一个操作,这个操作可以用一个 方法 来进行指定 , 然后我们把这个方法 传给别人 ,
getContentByPath('.,files/1.txt',function(data){ console.log('最终的内容是' + data) })那么 别人将来拿到这个数据的时候 可以拿着这个方法调用,就相当于我们自己做了某件事 (回调)
function getContentByPath(path,callback) { fs.readFile 是一个异步方法 fs.readFile(path,'utf-8',(err,dataStr) => { if(err) return callback(err) callback(dataStr) }) } getContentByPath('.,files/1.txt',function(err,data){ //规定死了 callback中 第一个参数永远失败的结果,第二个成功的结果 console.log('最终的内容是' + data) })//注意:第二个参数 是callback回调;是我们调用者 预先指定的一个操作流程
