这一次,彻底搞懂Promise的状态转换

简介: 这一次,彻底搞懂Promise的状态转换

这篇文章解决了我很久的困惑,也希望能够解决看到的小伙伴的困惑,谢谢。

Promise的三种状态到底是什么?

  1. pending
  2. fulfilled
  3. rejected

下面我们先看下三种状态的产生

1.pending状态的Promise

const promise1 = new Promise((resolve,reject) => {
})
console.log(promise1);

image.png

2. fulfilled状态的Promise

const promise1 = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve()
    })
})
console.log(promise1);


image.png

3. rejected状态的Promise

const promise = new Promise((resolve, reject) => {
        setTimeout(() => {
            reject();
        })
    });
    console.log(promise);


从pending状态到fulfilled状态的变化过程

  • resolve()后状态从pending变为了fulfilled
const promise = new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log('resolve前Promise的状态:',promise);
            resolve();
            console.log('resolve后Promise的状态:',promise);
        })
    });


image.png

从pending状态到rejected状态的变化过程

  • reject()后状态从pending变为了rejected
const promise = new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("Promise的状态:reject前:",promise);
            reject();
            console.log("Promise的状态:reject后:",promise);
        })
    });


image.png

下面介绍下关于Promise状态的可能的疑问

疑问1:resolved状态和fulfilled状态是一回事吗?

答:并不是一回事,resoved状态指的是完成了,不会再改变的状态,只是一种叫法,并不是真正的状态,真正的状态还是前文提到的那三种,pending、fulfilled、rejected这三种,所以resolved状态可能是fulfilled也可能是rejected。

疑问2:Chrome浏览器显示的状态时pending,点开却是fulfilled,到底哪

image.png

参考文献

Promise中的resolved和fulfilled到底什么关系,又或者这只是叫法的问题?

Promise的状态和现象【JS面试题】

相关文章
|
4月前
|
存储 运维 前端开发
【面试题】吃透Promise?先实现一个再说(包含所有方法)(一)
【面试题】吃透Promise?先实现一个再说(包含所有方法)(一)
|
4月前
|
前端开发
【面试题】吃透Promise?先实现一个再说(包含所有方法)(二)
【面试题】吃透Promise?先实现一个再说(包含所有方法)(二)
|
11月前
|
前端开发 Go
15 # promise 延迟对象的作用
15 # promise 延迟对象的作用
56 0
|
前端开发 JavaScript API
promise看这一篇就够了
promise看这一篇就够了
127 2
对于async和await的使用方式、作用效果不怎么理解 ?没关系,初步看这篇就够了
对于async和await的使用方式、作用效果不怎么理解 ?没关系,初步看这篇就够了
|
前端开发
前端学习案例4-promise封装详解4 原
前端学习案例4-promise封装详解4 原
63 0
前端学习案例4-promise封装详解4 原
|
前端开发
前端学习案例16-promise的理解方式&调用机制3
前端学习案例16-promise的理解方式&调用机制3
66 0
前端学习案例16-promise的理解方式&调用机制3
|
前端开发
前端学习案例14-promise的理解方式&调用机制1
前端学习案例14-promise的理解方式&调用机制1
72 0
前端学习案例14-promise的理解方式&调用机制1
|
前端开发
前端学习案例17-promise的理解方式&调用机制4
前端学习案例17-promise的理解方式&调用机制4
59 0
前端学习案例17-promise的理解方式&调用机制4
|
前端开发
前端学习案例3-promise的理解方式和调用机制2
前端学习案例3-promise的理解方式和调用机制2
53 0
前端学习案例3-promise的理解方式和调用机制2