- 主题:现在你们写 js 还会在发布的时候转成 es5 吗?
我又想了一下,其实你说得对了一半。。里面的 waiter 就是以前 jquery 的 Promise,或者说 Deferred. 相当于现在 Promise 缺失的另一半。
这些代码没啥新奇的,只是适配协程而已。不要在意这些细节。一个协程差不多要一千多行代码,这个 Event 只是里面一个小小的工具类。我贴这段代码是对上面说的 generator/coroutine 代码互转的补充。
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 感觉就是轮了一个promise啊....
: 这里用到一个特殊的类型 Event,它的代码是这样:
: class Event {
: ...................
--
修改:hgoldfish FROM 110.85.22.*
FROM 110.85.22.*
呵呵。。你还是先看懂代码再说吧。。上面有个 return this.value; 你漏看了。
【 在 eGust (十年) 的大作中提到: 】
: 你还是上一个 eslint 吧
: async () {
: return await promise
: ...................
--
FROM 110.85.22.*
不一样啊。。
return await promise;
会阻塞在这个语句,等待 promise 被处理,然后返回 resolve() 传入的值。而
return promise;
返回的是一个 promise 类型。没有阻塞。
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 他的意思是
: return await xxx 和return xxx 是一个效果
--
FROM 110.85.22.*
好吧。。好像还真是。
如果打算返回一个 promise,岂不是又踩坑?
let promise = await async () => { return new Promise(...); }
js 这种设计哲学我觉得很糟糕。多了一个记忆规则的负担。
【 在 pangwa (学门手艺,混口饭吃.) 的大作中提到: 】
: 去看spec....
: 不一样啊。。
: return await promise;
: ...................
--
修改:hgoldfish FROM 110.85.22.*
FROM 110.85.22.*
处理异常不是更简单么。try catch 就行了。
async/await 只是助记词。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 我一直都没弄明白的问题就是上了await准备怎么处理异常
: 还是彻底不管了
--
FROM 112.47.122.*