如果你自认熟悉 Promise,来猜一下这个代码的运行结果

2019-07-24 05:13:32 +08:00
 autoxbc
const onResolved = e => console.log('resolve , ', e );
const onRejected = e => console.log('reject , ', e );

new Promise( ( resolve , reject ) => {
	resolve( new Promise( ( resolve , reject ) => {
		resolve(42);
	} ) );
} ).then( onResolved , onRejected );

new Promise( ( resolve , reject ) => {
	resolve( new Promise( ( resolve , reject ) => {
		reject(42);
	} ) );
} ).then( onResolved , onRejected );

new Promise( ( resolve , reject ) => {
	reject( new Promise( ( resolve , reject ) => {
		resolve(42);
	} ) );
} ).then( onResolved , onRejected );

new Promise( ( resolve , reject ) => {
	reject( new Promise( ( resolve , reject ) => {
		reject(42);
	} ) );
} ).then( onResolved , onRejected );

如果猜错了,说明之前看的 Promise 教程都不合格,我还没见过合格的

5772 次点击
所在节点    JavaScript
33 条回复
PyCode
2019-07-24 11:22:44 +08:00
所以有没有合格的教程?
banricho
2019-07-24 11:31:00 +08:00
这……无论是面试题还是业务代码都是不合格的 = =
都什么年代了。。。
will0404
2019-07-24 11:45:40 +08:00
有了 async/await 再去折腾这个没必要了,即使没有 async/await,没有任何场景会需要这样写代码。
ochatokori
2019-07-24 12:38:01 +08:00
js 考题日常
为了整人出题…
libo930920
2019-07-24 13:42:39 +08:00
仔细看过 Promise A+规范的,基本都应该能答出来的吧
abcdGJJ
2019-07-24 16:37:56 +08:00
@temporary node 10.7 上是一致的 node 10 好像改过 promise
azh7138m
2019-07-24 18:27:43 +08:00
@zqx 标准是唯一且正确的,可以看标准。
教程不过是一个演绎(有的连演绎都算不上),可以选择不看。
Raymon111111
2019-07-24 18:51:23 +08:00
那 js 里
[ + { = ?
] + } 呢?
zqx
2019-07-24 19:00:54 +08:00
@azh7138m 标准也是教程
azh7138m
2019-07-24 19:44:38 +08:00
@zqx 那你应该是没看过标准,standard 和 tutorial 可完全不是一个东西
autoxbc
2019-07-25 00:12:39 +08:00
@qdwang #4 这确实不是种模式用法,但也称不上反模式,算是知识盲点吧
zqx
2019-07-25 08:45:04 +08:00
@azh7138m 有意思,公开的东西想看就看没什么门槛,好像比别人高级?
libook
2019-08-01 13:42:10 +08:00
这个知识很有趣,但对教程的全盘否定有些太偏激了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/585619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX