@
love 你为啥要说“二个语言级异步转同步方案”呢?这个说法就不对啊,为什么 yield 就被对号入座了呢?这个官方有推荐这种用法吗?ES 的作者们都没这么说。只是有些人比如 TJ, hack 了一下 yield 的一种特性而已,而且被很多一知半解的人宣传的变了味道。
换个说法,我能用 swich case 完成全部的 yield 的功能,那是不是说 switch case 能算第三种 异步语法了呢?很多方法都是能简化异步问题的,哪止一两种,即使是 callback,不谈 js,即使在 C 编程刚流行这个概念的时候也是解决很多棘手的异步问题的,只不过随着时间的推移需求变得更复杂了,人们又开始寻找能解决当下问题的工具而已。
我敢说用不了几年当 async await 被大量使用后,人们能解决更多更复杂问题的时候又会有新的语法被发明出来。不说未来,即使是现在就有很多玩转了 yield async await promise 开始抱怨它们的总总问题了。有兴趣的话,可以去 MDN 订阅个 mailing list 看看业内人士们是如何讨论未来的,最近两天就有几个哥们一直在讨论 async 的各种问题。