我什么时候应该使用yield和何时使用Koa.js的yield *

阿米特

浏览koa样本,文档和中间件时,我注意到这两种形式的yield使用都没有引起任何特别的区别。最极端的情况是在koa-mount中,其中示例代码使用yield next;表单,而程序包本身使用yield*了几次。其他软件包(例如koa-views)也使用该yield next表格。

我了解该语言定义的两种形式之间的区别,但不了解在koa的上下文中如何将它们互换使用以及何时在另一种上正确使用它们是正确的。

编辑29/5

经过更多研究后,我了解到koa建立在co之上,并且co能够处理多种类型的异步结果(thunk,Promises ...),所以这两种可能都是合法的,但我仍然不确定哪种指南可以帮助决定在每种情况下使用哪种形式。

费利佩·卡斯特罗(Felipe Castro)

来自koa团队成员之一的这篇文章-yield next vs. yield * next准确地解释了这是什么以及他们为什么使用它。

yield *如文章所示,在某些情况下,可以使用this来避免额外的co调用,或者this在屈服时保持context()。但是话又说回来,它并不是真正需要的-正如作者所言,“我们不主张这样做以避免混淆”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

什么时候在组件中使用yield?

我什么时候应该使用 async/await,什么时候应该使用回调 [js]?

节点js什么时候应该使用异步机制

了解Sinon.js的yield(),yield()和callArg()

Koa:koa-route和koa-mount之间有什么区别?我什么时候应该使用每个?

什么时候应该在独立的node.js上使用express.js

什么时候使用js框架?

在redux-saga中,何时应使用yield * vs yield?

我什么时候应该使用sed和什么时候应该使用awk

在React JS中,什么时候应该使用商店而不是直接操纵视图的状态?

什么时候应该在node.js mysql中使用连接池?

我什么时候应该使用`drain`和`into_iter`?

我什么时候应该使用GROUP BY?

我什么时候应该使用blockingGet?

我什么时候应该使用SynchronousQueue

我什么时候应该使用`sparse`?

我什么时候应该使用FutureBuilder?

我什么时候应该使用.copy()

我应该什么时候使用 JSDocs?

如何在Node.js路由器中使用Promise和yield?

JS:如何在回调中使用生成器和yield

如何在ember js中使用{{Yield}}帮助程序和哈希帮助程序?

什么时候应该使用<或<()或<<和>或>()?

Simpy - 何时使用 yield 以及何时调用该函数

如果我有一个使用yield的cdef或cpdef函数,应该是什么类型?

我什么时候应该使用Q.defer以及何时Promise.resolve / reject?

我什么时候应该打开/关闭与数据库的连接?(MariaDB / node.js)

Elm组件和视图:什么时候应该使用“ HTML消息”以及何时“ HTML消息”

在next()中使用yield