CNode

新手请教KOA2这样回调为什么不返回信息至客户端

问答
Wwinds2016发布于10 年前最后回复10 年前8 回复5479 浏览0 收藏

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)

F
FoghostCn#1·10 年前

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

W
winds2016#2·10 年前

那应该如何改呢,多谢

H
hezhongfeng#3·10 年前
引用 winds2016那应该如何改呢,多谢

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

W
winds2016#4·10 年前

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

T
thomas0836#5·10 年前

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

var rdata = await db.queryPage('', {}, 0, 20)
ctx.body = {success: true, pagecount: rdata.count, customers: rdata.rows}
T
thomas0836#6·10 年前
W
winds2016#7·10 年前

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

参与回复
登录后即可参与回复。登录