[英]When should I use yield and when yield* with Koa.js
浏览koa样本,文档和中间件,我注意到两种形式的yield
都被使用而没有任何特别的区别我注意到了。 最极端的情况是koa-mount,其中示例代码使用yield next;
形式,包本身使用yield*
几次。 其他包(例如koa-views )也使用yield next
表单。
我理解语言所定义的两种形式之间的区别,但不明白在koa的语境中它们是如何互换使用的,以及何时使用一种形式是正确的。
经过一些更多的研究,我明白,因为koa建立在co之上,而且co能够处理多种类型的异步结果(thunks,Promises ......),两者都是合法的 ,但我仍然是不确定哪个指南有助于确定在每个场景中使用哪种形式。
本文 - 来自koa团队成员之一的下一个产量与产量*接下来 ,准确地解释了这是什么以及他们使用它的原因。
在一些情况下,可以使用此yield *
,如文章所示,以避免额外的co
调用,或在屈服时保持上下文( this
)。 但话说回来,并不是真的需要 - 正如作者所说,“ 我们并不主张避免混淆 ”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.