node.js - 如何在 Coffeescript 1.9 上强制使用生成器?

标签 node.js coffeescript generator ecmascript-6 koa

CoffeeScript 现在支持生成器,但是,我发现只有你使用 yield 关键字,那么你的函数才会被编译为生成器,这是我的问题,我使用 koa 来编写我的代码,有些中间件我不需要异步逻辑,所以我不需要yield,所以,CoffeeScript认为这是一个正常的函数,但是,koa说: app.use() 需要一个生成器函数,T^T,有人有解决方案吗?谢谢!

最佳答案

使用武力,卢克! ;)

我移植了 example from the homepage到 CoffeeScript,并简单地让最后一个处理程序也接受 next 参数并对其进行 yield,尽管这是完全没有必要的。

原来它工作得很好。然而,改为 yield null 是行不通的。

koa = require("koa")
app = koa()

# x-response-time

app.use (next) ->
  start = new Date
  yield next
  ms = new Date - start
  @set 'X-Response-Time', ms + 'ms'

# logger

app.use (next) ->
  start = new Date
  yield next
  ms = new Date - start
  console.log '%s %s - %s', this.method, this.url, ms

# response

app.use (next) ->
  @body = "Hello World"
  yield next

app.listen(3000)

关于node.js - 如何在 Coffeescript 1.9 上强制使用生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29466732/

相关文章:

node.js - 如何为部署到 Heroku 的 Node +mongo 应用程序播种数据?

javascript - CoffeeScript 中循环指针的增量

javascript - Marionette ItemView 未发出 "change"事件

javascript - 关于嵌套 setInterval

python - 生成器函数的返回类型提示是什么?

javascript - Node.js 中的 declare var 是什么?

javascript - 如何在nodejs中的多个文件之间共享变量

node.js - 如何在 connect.server() 中引用 root?

php - 在网页中单击按钮时,如何显示列表中的随机短语?

javascript - 使用promise等待数据库操作