Promise介绍
Promise 是
一个 构造函数
, 用于创建Promise对象
Promise对象:可以理解为一个处理异步操作的容器
Promise作用:解决回调地狱
回调地狱:异步回调 层层嵌套
//在回调函数中嵌套执行
//弊端 : 形成回调地狱(异步回调 层层嵌套,非常麻烦且不便于维护)
//读取文件A
const fs = require('fs')
fs.readFile("./data/a.txt", 'utf-8', (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
//A读取成功之后开始读取B
fs.readFile("./data/b.txt", 'utf-8', (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
//B读取成功之后开始读取C
fs.readFile("./data/c.txt", 'utf-8', (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
}
});
}
});
Promise基本使用
-
1.实例化Promise对象
-
作用: 将异步操作代码 放入 Promise中
-
resolve:异步操作 成功状态
-
reject : 异步操作 失败状态
-
-
new Promise((resolve,reject)=>{ 你的异步操作 })
-
-
2.调用
then()
方法处理异步操作结果-
promise对象.then((data)=>{ 处理成功数据 },(err)=>{ 处理失败信息 });
-
/*
1.Promise是一个构造函数 , 返回一个Promise对象
2.使用流程
(1)实例化Promise对象 : 将异步操作放入Promise中
(2)调用then() 方法: 处理异步操作结果
*/
const fs = require('fs')
//1.创建promise实例对象
const p1 = new Promise((resolve, reject) => {
//异步操作
fs.readFile('./data/a.txt', 'utf8', (err, data) => {
if (err) {
/*
(1)异步操作失败,则执行 reject()
(2)reject会把把promise对象的状态从 pending进行中 改为 rejected失败
(3)该方法本质是调用 then() 中的第二个方法
*/
reject(err)
} else {
/*
(1)异步操作成功,则执行 resolve()
(2)resolve会把把promise对象的状态从 pending进行中 改为 fulfilled成功
(3)该方法本质是调用 then() 中的第一个方法
*/
resolve(data)
}