为什么我的Promise.then()里面的函数中参数能够拿到reject的值?
你并没有“拿到” reject
的值。
可以在打印语句前面加上 prefix
,例如使用这样的语句:
p.then(data => console.log('data is now:', data));
这样的话console.log
有没有执行,一目了然。
至于你看到的那个 Promise
,不过是控制台将你的输入的上一个语句的返回值显示出来了而已;
红色的是抛错,和打印也没有关系。
当执行resolve
或者reject
后就改变了状态,从而只能执行对应的回调, Promise.then()
是执行不了里面的回调的, 所以不是拿到了reject
的值,而是浏览器控制台console
默认输出了Promise.then()
的返回值
推荐自己去搜索相关Promise
的资料,如https://segmentfault.com/a/11...
8 回答4.5k 阅读✓ 已解决
6 回答3.1k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
.then
又返回了一个新的Promise,你看到的是这个新的Promise,里面的
reject