KOA async/await后ctx.body失效
2019-12-30 本文已影响0人
Demonskp
事由
最近在重写自己的博客系统,从原来的express修改到koa+TS。在添加数据库连接时碰到了这个问题。
简单来说,他的表现就是你写了正确的async/await或者promise,但是你用console来打印能正确打印出来,你用ctx.body去显示它就失败了。
失败的原因
我自己写的中间件在调用next()的时候 并没有把next当作一个异步函数使用。因此你在promise中异步赋值了ctx.body,但是由于next函数没有等你,在你赋值之前这一网络请求就已经完成了。
解决办法
- 检查你的async/await和promise是否正确。
- 检查你的中间件的next函数是否等待了。