浏览koa样本,文档和中间件时,我注意到这两种形式的yield
使用都没有引起任何特别的区别。最极端的情况是在koa-mount中,其中示例代码使用yield next;
表单,而程序包本身使用yield*
了几次。其他软件包(例如koa-views)也使用该yield next
表格。
我了解该语言定义的两种形式之间的区别,但不了解在koa的上下文中如何将它们互换使用以及何时在另一种上正确使用它们是正确的。
经过更多研究后,我了解到koa建立在co之上,并且co能够处理多种类型的异步结果(thunk,Promises ...),所以这两种可能都是合法的,但我仍然不确定哪种指南可以帮助决定在每种情况下使用哪种形式。
来自koa团队成员之一的这篇文章-yield next vs. yield * next准确地解释了这是什么以及他们为什么使用它。
yield *
如文章所示,在某些情况下,可以使用this来避免额外的co
调用,或者this
在屈服时保持context()。但是话又说回来,它并不是真正需要的-正如作者所言,“我们不主张这样做以避免混淆”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句