1

协程和生成器之间的区别对我来说是模糊的。

如果有人能阅读文章Callbacks vs Coroutines - A look at callbacks vs generators vs coroutines,我将不胜感激,网址https://medium.com/code-adventures/174f1fe66127

...然后解释生成器和协程之间的差异和竞争(标题确实使用术语“vs”)在本文中说明/呈现的位置和方式?更一般地说,我的问题是这种区别实际上是什么,并且这种区别是否适用于在 Koa(在 Node.js 中)构建应用程序时处理异步请求的编码模式可能有何不同?

4

1 回答 1

1

生成器有时被称为“半协程”,这是一种更有限的协程形式,可能只让给它的调用者。这使得生成器的使用比协程更明确,因为只有产生的值可以暂停“线程”。

“生成器”的级别低于协程。它们可以用作协程库的构建块。如果您在语言中有“生成器”,则可以构建“协程”库。

ES6 提供了“生成器”,因此您可以使用“协程”库在节点中实现协程编程(顺序,用 try-catch 代替回调)

使用协程库,您可以“等待”异步调用完成。

检查:https ://github.com/luciotato/waitfor-ES6

于 2014-04-16T15:47:12.190 回答