promise的状态传递到底怎么理解?
 发布于 7 年前  作者 CoderSavior  4361 次预览  最后一次回复是 7 年前  来自 问答 

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

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

11 回复
fhawk

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

fhawk

建议看看https://github.com/nswbmw/node-in-debugging/blob/master/3.1%20Promise.md

leemove

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

aojiaotage

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

1316346949

@leemove 请问promise源码在哪里?

CoderSavior

@leemove 好的我去看看源码,感谢