promise的状态传递到底怎么理解?
发布于 6 年前 作者 CoderSavior 3881 次浏览 来自 问答

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

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

11 回复

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

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

@fhawk 怎么理解

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

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

@leemove 请问promise源码在哪里?

@aojiaotage 好的,我去看看

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

回到顶部