Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.7k views
in Technique[技术] by (71.8m points)

Promsie.resolve(promise对象)为什么then中val是普通值?

问题描述:
image.png
如上图所示,给Promsie.resolve传递一个promise对象结果返回的是1,而不是一个promise对象这是为什么?

通过我对Promise源码的理解,它底层then实现是 如果then里的回调函数返回时一个promise对象,那么他会深度递归调用这个promise的then方法,直到为一个普通值,在使用new Promise 包裹返回这个普通值

如果是 promise.resolve(promise).then().then(val => console.log(val)) 返回普通值我可以理解,因为第二个then已经将返回值promise转为普通值了, 可能少一层我就不理解了。

希望大佬们,可以指点一下,谢谢


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Promise.resolve(value)方法返回一个以给定值解析后的Promise对象。如果这个值是一个 promise ,那么将返回这个 promise

这是相关资料


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...