浏览koa样本,文档和中间件,我注意到两种形式的产量都被使用而没有任何特别的区别我注意到了.最极端的情况是在koa-mount,其中sample code使用下一个产量;表格,包itself使用yield *几次.其他包(例如koa-views)也使用yield next格式.
我理解语言所定义的两种形式之间的区别,但不明白在koa的语境中它们是如何互换使用的,以及何时使用一种形式是正确的.
编辑29/5
经过一些更多的研究,我明白,因为koa建立在co之上,并且co能够处理多种类型的异步结果(thunks,Promises ……),两者都是合法的,但我仍然是不确定哪个指南有助于确定在每个场景中使用哪种形式.
解决方法:
这篇文章 – 来自koa团队成员之一的yield next vs. yield* next ,准确地解释了这是什么以及为什么他们使用它.
在一些情况下,可以使用此产量*,如文章所示,以避免额外的共同调用,或在屈服时保持上下文(this).但话说回来,并不是真的需要 – 正如作者所说,“我们并不主张避免混淆”.