使用koa, koa-router, 如何让其在返回数据的时候延迟一秒?
问题描述
使用koa, koa-router, 如何让其返回数据的时候延迟一秒?
问题出现的环境背景及自己尝试过哪些方法
按照网上的代码,似乎没问题
page.get('/test',
async (ctx, next) => {
ctx.body = { data: 'xxx' };
console.log(1)
await next();
console.log(1);
},
async (ctx, next) => {
console.log(2);
await next();
console.log(2);
},
ctx => {
console.log(3)
}
)
输出
1
2
3
2
1
// 数据返回
但是一旦使用 setTimeout
将不按照理想情况执行
page.get('/open_city',
async (ctx, next) => {
console.log(123)
await next();
console.log(789)
ctx.body = 'hello';
},
(ctx, next) => {
setTimeout(() => {
console.log(456)
}, 1000)
}
)
输出
123
789
// 789后就会将数据返回,然后才会输出456
456
浏览器中会将setTimeout加入异步队列,node中也是如此?
如题,百思不得解。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不是
async
函数你让node
怎么异步执行?这需求简单就是写个异步延时函数
在你需要延时的路由中加上