传统读取文件的例子
利用回调函数层层嵌套 回调地狱
const fs = require('fs')
const path = require('path')
function readFileName (fileName,callback){
const fullName = path.resolve(__dirname, './',fileName)
fs.readFile(fullName,(error,data)=>{
if(error){
console.log(error)
return
}
callback(JSON.parse(data.toString())) // callback中的参数为下边的 aData
})
}
readFileName("a.json",(aData)=>{
console.log('a',aData);
readFileName(aData.next,(bData)=>{
console.log('b',bData);
readFileName(bData.next,(cData)=>{
console.log('c',cData);
})
})
})
promise方式
const fs = require('fs')
const path = require('path')
function readFileName(fileName){
const promise = new Promise((resolve,reject)=>{
const fullName = path.resolve(__dirname,'./',fileName);
fs.readFile(fullName,(error,data)=>{
if(error){
reject(error)
return
}
resolve(JSON.parse(data.toString()));
})
})
return promise
}
readFileName('a.json').then(aData=>{
//readFileName('a.json')是一个promise对象,return出的数据将then也变成一个promise对象
console.log('a',aData)
return readFileName(aData.next)
}).then(bData=>{
console.log('b',bData);
return readFileName(bData.next);
}).then(cData=>{
console.log(cData)
})
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。