Promise
1.为什么需要Promise
解决回调地狱
2.Promise的基本使用
promise是一个构造函数,通过new关键字实例化对象
new Promise((resolve,reject) => {})
1)Promise 的状态
第一种状态: pending(准备, 待解决, 进行中)
第二种状态: fulfilled(已完成, 成功)
第三种状态: rejected(已拒绝, 失败)
2) then方法参数
1.是一个参数 2.还是一个参数
返回值:是一个Promise对象
- 在 then 方法的参数函数中, 通过形参使用 promise 对象的结果
then 方法返回一个新的 promise 实例, 状态是 pending
promise 的状态不改变, 不会执行 then 里的方法
在 then 方法中, 通过 return 将返回的 promise 实例改为 fulfilled 状态
如果在 then 方法中, 出现代码错误, 会将返回的 promise 实例改为 rejected 状态
3)catch 方法
const p = new Promise((resolve, reject) => {
// reject()
// console.log(a)
throw new Error('出错了')
})
// 思考: catch中的参数函数在什么时候被执行?
// 1. 当promise的状态改为rejected时, 被执行
// 2. 当promise执行体中出现代码错误时, 被执行
p.catch((reason) => {
console.log('失败', reason)
})
console.log(p)
常用模板
<script>
new Promise((resolve,reject) => {
}).then((value)=>{
//成功时被执行
console.log(value)
}).catch((reason) =>{
//失败时被执行
console.log(reason)
})
</script>