背景知识:
回调地狱:这个现象或者名词的出现和node中绝大多数API都是以回调的形式进行而出现的,所谓的回调地狱,可以直白的说,就是回调嵌套的层数太多导致的
就以本次的文件拷贝为例,如果通过node的fs模块提供的readFile和writeFile这两个方法来做的话,势必会出现回调嵌套的,示例代码如下:
/* jshint esversion:6 */
// 导入fs模块
const fs = require('fs');
// 目标文件
const src_file = './data/name.txt';
// 待备份的文件
const dest_file = './data/back.txt';
// 将name文件下名字包含"test"的提取出来并写入到back文件中
fs.readFile(src_file, (err, data) => {
if(err){
throw err;
}
// 读取到文件内容
let nameInfo = data.toString('utf-8');
console.log('读取到的名字信息是:', nameInfo);
// 将名字按照逗号分隔成数组并提取出其中包含test的名字出来
let nameList = [];
nameInfo
.split(',')
.filter(a => a.indexOf('test') != -1)
.forEach(a => nameList.push(a));
console.log(n