javascript - 我什么时候应该使用 yield 什么时候使用 yield* 与 Koa.js

标签 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...),所以有可能两者都是合法的,但我仍然不确定什么准则有助于决定在每种情况下使用哪种形式。

最佳答案

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

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

关于javascript - 我什么时候应该使用 yield 什么时候使用 yield* 与 Koa.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30457200/

相关文章:

javascript - 三.JS Shadow转对象

javascript - spine 路由(spine js mvc)如何工作?

node.js - gulp 构建依赖于文件夹的 css

javascript - 导入的成员无法创建 Mongoose 模型

javascript - 如何防止恶意使用我的套接字?

javascript - 不能简单地使用 ES6 Promise 来更新 ng-repeat 中的数据吗?

reactjs - 在 create-react-app 中调试 es6

javascript - Material UI 断点设置方向 : portrait and landscape view

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

javascript - ES6回调的默认值参数