这个不是事。对于内部无 await 的,编译器可以很自动化地编译成普通函数。
显式 async 的问题很大,你们其实都没考虑过,它无法穿透系统定义的函数。
比如 Proxy 定义的 getter/setter,如果要实现一个需求,某个 obj 的 property 由远程决定是否存在,以及设置 property 的值,会自动地修改远程的值。显然 Proxy 是做不到的。这个功能常用于 python 的 rpc, python 应用 gevent 后可以做到而 js 不行。
想要实现上面那个需求的话,js 就不得不再定义一个 Proxy 的 async 版本了。
这就是我为什么说 js 是一门垃圾语言的原因。
【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: 哪怕io操作都要协程化,为啥所有函数都要async?我写个1加1纯计算函数也要进事件循环?
--
FROM 124.72.119.*