- 主要用于异步计算
- 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
- 可以在对象之间传递和操作promise,帮助我们处理队列
promise有三个状态:
- pending[待定]初始状态
- fulfilled[实现]操作成功
- 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);
})