CNode

promise的状态传递到底怎么理解?

问答
CCoderSavior发布于8 年前最后回复8 年前11 回复4514 浏览0 收藏

promise.png 各种资料看了不少,但是还是没有完全理解阮一峰两个promise实例状态传递的原理。如图,以图中p1,p2来举例,疑问点主要有以下几点 1>如果是p1到底如何决定p2的状态,如果p1调用resolve,貌似p2并没有调用resolve 2>如果p2调用了reject,并且执行了then第二个参数的话,为什么其promise状态还是‘resolved’ 3>p1,p2之间值到底是如何传递的,因为打印出来值有时会是undefined。

综上所述,我完全没有理解promise,希望大佬们指点一下迷津。

查看回复

回复 (11)

F
fhawk#1·8 年前

我个人理解,reject其实就是一个throw Error()

C
CoderSavior#5·8 年前

C
CoderSavior#6·8 年前

再顶

L
leemove#7·8 年前

你的疑惑好像是 一个promise里面reslove或者reject一个promise会怎么样.... 其实promise源码里面有一个递归函数,会层层解析你返回的promise,直到不是promise.

A
aojiaotage#8·8 年前

对 promise 的理解我强烈推荐参阅 https://promisesaplus.com/ 这就是标准 你的疑问标准里有比较明确的指定

参与回复
登录后即可参与回复。登录