nodeJS中回调地域案例思考题
需求:现在存在三个文件 1.txt 2.txt 3.txt
每个文件里面有一个字符。使用:fs.readFile(异步) 顺序读取
1.txt 2.txt 3.txt 里面的内容,然后组成 一段字符串 把这个字符串写入到 data.txt 文件中。
编写思路:
- 1、引入path内置模块和fs文件系统模块;
- 2、读取到三个文本的路径和写入数据模块的路径;
- 3、利用fs.readFiles()方法读取路径文本保存的内容,题目要求使用异步方法利用嵌套关系依次读取数据内容,数据读取成功获得data参数;
- 4、利用拼接字符串的方法汇总读入数据;
- 5、利用fs.writeFile()方法写入数据到指定的路径当中。运行成功数据写入成功
注意点: 回调函数参数写反导致内容输出失败,注意参数结构为前者为错误后者为正确(代码编写中出现的错误,仅供参考,具体原因不明^~^);
源码:
const fs = require("fs");
const path = require("path");
let pathName1 = path.join(__dirname,"files", "1.txt");
let pathName2 = path.join(__dirname,"files", "2.txt");
let pathName3 = path.join(__dirname,"files", "3.txt");
let pathName4 = path.join(__dirname,"files", "data.txt");
fs.readFile(pathName1,"utf-8",(error1, data1)=>{
if(error1){
console.log(error1);
return
}
fs.readFile(pathName2,"utf-8",(error2, data2)=>{
if(error2){
console.log(error2);
return
}
fs.readFile(pathName3,"utf-8",(error3, data3)=>{
if(error3){
console.log(error3);
return
}
// console.log(data1+data2+data3);
fs.writeFile(pathName4,data1+data2+data3,"utf-8",(error)=>{
console.log(data1+data2+data3);
})
})
})
});
回调地狱
在上面的题目中,操作之间是存在依赖性的,上一步依赖下一步的成功执行。但是操作又是通过异步api完成,则我们只能在回调函数里面编写,那么这个时候就会出现回调嵌套回调,俗称:回调地狱 Callback Hell。
后面我们使用promise来解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)