什么时候我应该使用收益率和收益*与Koa.js

时间:2015-05-26 11:26:04

标签: javascript node.js ecmascript-6 koa yield-keyword

浏览koa示例,文档和中间件时,我注意到yield的两种形式都在使用,没有任何特别的区别我注意到了。最极端的情况是在koa-mount中,sample code使用yield next;表单,而itself包使用yield*几次。其他包(例如koa-views)也使用yield next表单。

我理解语言所定义的两种形式之间的差异,但不明白在koa的情况下它们是如何互换使用的,以及何时使用一种形式是正确的其他

编辑29/5

经过一些更多的研究,我明白,因为koa是建立在co之上的,并且co能够处理多种类型的异步结果(thunks,Promises ......),所以两者都可能是合法的,但我仍然不确定哪个指南有助于确定在每种情况下使用哪种表单。

1 个答案:

答案 0 :(得分:6)

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

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