Shu*_*dia 1 javascript node.js async-await koa koa2
我要解决一个诺言,然后像Koa 2一样呈现一个视图。
async function render(ctx, next) {
// wait for some async action to finish
await new Promise((resolve) => {
setTimeout(resolve, 5000)
})
// then, send response
ctx.type = 'text/html'
ctx.body = 'some response'
await next()
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,服务器不会发送任何响应(浏览器一直在等待响应,并且超时)。我究竟做错了什么?
我意识到我已经晚了几个月,但是我偶然发现了同一个问题,发现为了使给定的中间件能够等待异步执行,所有前面的中间件都必须这样做await next(),而不是只是next()。确保进行验证,事后看来很明显。
我希望这有帮助。