💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## Promise的三种状态 - 不可逆的 * pending * resolved * rejected 问题: promise的状态为什么是不可逆的? ![](https://img.kancloud.cn/b1/cd/b1cd4872892cf1138b2dccd5c7c0d16c_404x213.png) 从源码层面看,由于状态改变前会判断当前状态如果不是 pending,就直接return了,不会往下执行,也就不会往微任务队列里推任务了 ## * promise 里的代码是立即执行的 * promise可以使用 .catch 捕获错误 * then的代码是放在微任务队列中的 * then 返回的也是一个promise * then里如果没有return new Promise,默认return 了一个成功的promise,下一个then里的内容是可以输出的 - 透传 ``` const p1 = new Promise((resolve, reject) => { resolve('success') }) const p2 = p1.then(res => { // 默认是成功的返回 }).then(res => { console.log(111) // 输出111 }) ``` ``` setTimeout(() => { console.log(3) }) new Promise((reslove, reject) => { setTimeout(() => { reslove() console.log('setTimeout') }) console.log('promise') }).then(res => { console.log('then') }) console.log('lallala') // promise // lallala // 3 // setTimeout // then ```