promise 状态

promise 状态

<script>
const p = new Promise((resolve, reject) => {
resolve(123);           //Promise{<fulfilled>:123}
// reject('err');
})
console.log(p)

const p1 = p.then(
(data) => { console.log(data, 'sucess'); },  //123,sucess
(data2) => { console.log(data2, 'err') })
console.log(p1)
<script>

关于p1的状态不了解,按照老师讲的,他会自动返回值为undefined的新promise函数,那么它的状态应该是fulfilled,但是后台输出的为什么是pending,但是pending里状态又显示fulfilled ?

https://img1.sycdn.imooc.com//climg/63b1917e090ad6b005740144.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2023-01-02 10:41:45

同学你好,解答如下:

1、script的闭合标签,要注意写法,不能省略/:

https://img1.sycdn.imooc.com//climg/63b243820976039304170439.jpg

2、p1的状态是fulfilled。控制台的展示结果怪异,是正常的。可以理解成控制台刚输出的时候,p1的状态还没有更新完成,正处于pending。控制台输出结束后,p1状态变了,所以就再下面显示了最新的状态fulfilled:

https://img1.sycdn.imooc.com//climg/63b24428091dcfc807740138.jpg

这是控制台的显示问题,知道就行了。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师