JS中或node中,都大量的使用了回调函数进行异步操作,而异步操作什么时候返回结果是不可控的,如果我们希望几个异步请求按照顺序来执行,那么就需要将这些异步操作嵌套起来,嵌套的层数特别多,就叫做回调地狱。
下面的案例就有回调地狱的意思:
案例:有 a.txt、b.txt、c.txt三个文件,使用fs模块按照顺序来读取里面的内容,代码:
// 需要异步读取a、b、c三个文件,按照顺序来输出读取的结果
const fs = require('fs');
// 先读a文件
fs.readFile('./a.txt', 'utf-8', (err, data) => {
console.log(data);
// 读取b文件
fs.readFile('./b.txt', 'utf-8', (err, data) => {
console.log(data);
// 读取c文件
fs.readFile('./c.txt', 'utf-8', (err, data) => {
console.log(data);
});
});
});
注意:***********案例中,只有三个文件,试想如果需要按照顺序读取的文件非常多,那么嵌套的代码将会多的可怕,这就是回调地狱的意思。
回调地狱(就是让代码按照顺序执行)***Promise - ES6新对象
最新推荐文章于 2024-03-07 00:00:00 发布