封装Promise异步读取文件

// 按顺序来读取a、b、c三个文件的内容
const fs = require('fs');

// 封装一个函数,实现异步读取文件
let read = (path) => {
    return new Promise((resolve, reject) => {
        fs.readFile(path, 'utf-8', (err, data) => {
            err ? reject(err) : resolve(data);
        });
    });
}

// 调用读文件的函数
// 调用函数,会得到函数的返回值,返回值是 Promise 对象
read('./a.txt')
.then((data) => {
    console.log(data);
    return read('./b.txt');
})
.then((data) => {
    console.log(data);
    return read('./c.txt');
})
.then(data => {
    console.log(data);
})
.catch(err => {
    console.log(err);
});

// aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
// bbbbbbbbbbbbbbbbbbbbbb
// cccc

你可能感兴趣的:(同步和异步)