Promise的实现简单异步任务链式调用

78 阅读1分钟

tip:本文仅是本人是学习过程中记录的文章,水平非常有限,内容可能存在许多错误,还请大家指正

const fs = require("fs");
// 实现按顺序读取text1 text2 text3
const p = new Promise((resolve, reject) => {
  fs.readFile("./resources/text1.txt", (err, data) => {
    resolve(data);
  });
});
p.then((value) => {
  return new Promise((resolve, reject) => {
    fs.readFile("./resources/text2.txt", (err, data) => {
      //   resolve的值作为p的value(下一个then中的value的值)
      resolve([value, data]);
    });
  });
})
  .then((value) => {
    return new Promise((resolve, reject) => {
      fs.readFile("./resources/text3.txt", (err, data) => {
        value.push(data);
        resolve(value);
      });
    });
  })
  .then((value) => {
    console.log(value.join("\r\n")); //text1 text2 text3
  });