什么是回调函数?
简单理解 :把方法作为一个参数 传递给另外一个方法 这种过程就叫做回调函数
拿(封装读文件的方法)举例说明:
方法封装的原则:【不要替调用者决定如何处理结果,而是应该把方法调用的结果,返回给调用者,让调用者决定如何处理数据】
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回调;是我们调用者 预先指定的一个操作流程