目录
一、Promise的三种状态
pending:等待中,是初始状态!!!!fulfilled:成功状态rejected:失败状态
二、Promise的一些知识点
- 1、执行了
resolve,Promise状态会变成fulfilled - 2、执行了
reject,Promise状态会变成rejected - 3、Promise只以
第一次为准,第一次成功就永久为fulfilled,第一次失败就永远状态为rejected - 4、Promise中有
throw的话,就相当于执行了reject -
5、Promise的executor是同步的哦!!!
三、then
// 马上输出 ”成功“
const p1 = new Promise((resolve, reject) => {
resolve('成功')
}).then(res => console.log(res), err => console.log(err))
// 1秒后输出 ”失败“
const p2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('失败')
}, 1000)
}).then(res => console.log(res), err => console.log(err))
// 链式调用 输出 200
const p3 = new Promise((resolve, reject) => {
resolve(100)
}).then(res => 2 * res, err => console.log(err))
.then(res => console.log(res), err => console.log(err))
- then接收两个回调,一个是
成功回调,一个是失败回调 - 当Promise状态为
fulfilled执行成功回调,为rejected执行失败回调 - 如resolve或reject在定时器里,
则定时器结束后再执行then - then支持
链式调用,下一次then执行受上一次then返回值的影响 - 看过
js执行机制的都知道,then方法是微任务,看下方例子
const p = new Promise((resolve, reject) => {
resolve(1)
}).then(res => console.log(res), err => console.log(err))
console.log(2)
输出顺序是 2 1
总结
嘿嘿 书中自有黄金屋
本文详细解读了Promise的三种基本状态(pending、fulfilled、rejected),重点介绍了resolve和reject操作如何影响状态,并深入剖析了then方法的工作原理,包括回调执行时机和链式调用示例。

1万+

被折叠的 条评论
为什么被折叠?



