nodeJS中回调地域案例(Callback Hell)

本文探讨了如何使用Node.js避免回调地狱,通过异步操作顺序读取1.txt、2.txt和3.txt的内容,并将它们拼接成一个字符串,最终写入data.txt。关键在于理解回调函数的正确使用和Promise的替代方案。
摘要由CSDN通过智能技术生成

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来解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值