promise

130 阅读1分钟
  1. 主要用于异步计算
  2. 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
  3. 可以在对象之间传递和操作promise,帮助我们处理队列

promise有三个状态:

  1. pending[待定]初始状态
  2. fulfilled[实现]操作成功
  3. rejected[被否决]操作失败 当promise状态发生改变,就会触发then()里的响应函数处理后续步骤; 操作成功执行resolve回调,操作失败执行reject回调。
//封装读取文件代码
const fs = require('fs')

function getfile(pfile) {
  return new Promise(function (resolve, reject) {
    fs.readFile(pfile, 'utf-8', function (err, data) {
      if (err) return reject(err)
      resolve(data)
    })
  })
}

getfile('./1.txt')
  .then(function (data) {
    console.log(data)
    return getfile('./22.txt')
  })
  .then(function (data) {
    console.log(data)
    return getfile('./3.txt')
  })
  .then(function (data) {
    console.log(data)
  })
  .catch(function (err) {
    console.log('自己处理的错误信息'+err.message);
  })