新手请教KOA2这样回调为什么不返回信息至客户端
发布于 8 年前 作者 winds2016 4941 次浏览 来自 问答

router.get(’/’, async function (ctx, next) {

await db.queryPage(’’, {}, 0, 20, function(rdata) { ctx.body = {success: true, pagecount: rdata.count, customers: rdata.rows}; }); }) SQL查询已返回数据,也没有错误显示,但数据没有返回给客户端,客户端显示:Not Found 把赋值语句放在回调函数外面是会返回给客户端的 求教,谢谢

8 回复

await后边跟Promise, 你这明显不是Promise,你的回调函数执行之前这个请求就已经结束了

那应该如何改呢,多谢

@winds2016 加个return,或者直接return db.queryPage(’’… 可以吗

直接return db.queryPage(’’…不行

建议 先理解 异步操作和Async函数 这里的内容在做吧

var rdata = await db.queryPage('', {}, 0, 20)
ctx.body = {success: true, pagecount: rdata.count, customers: rdata.rows}

可以了 return new Promise((resolve, reject) => { db.queryPage(’’, {}, 0, 20, function(rdata) { ctx.body = {success: true, pagecount: rdata.count, customers: rdata.rows}; resolve(); }); }); 谢谢各位提醒

@thomas0836 我不太熟,帮不上忙啊,不好意思

回到顶部