我只是痛苦地意识到生成器函数不能用于等待.只有承诺或异步功能.
我的团队构建了一个完整的应用程序,所有模块都包含生成器函数,从主js文件调用一个Co模块.
除了通过数百个生成器功能并将它们更改function*(...){
为async function(...){
,还有什么方法可以使生成器与async/await一起工作?
没有任何意义,因为yield*/generators和async/await在处理流程方面非常相似,所以我想知道他们是如何错过等待支持生成器的.
你必须通过你的代码库并进行更改,是的(当然你可以编写/使用一个为你做任何事情的工具).
但是你可以,如果你想逐渐做:替换function*
用async function
,里面每一个yield
通过await
和每一个yield*
通过await co(…)
,然后每次调用前生成功能,从改变co(…)
到…()
.