node中await调用没有作用

后端使用node的微信小程序。await mysql的异步方法写在getRoom里无返回值像是异步出错了,但是写在主函数里可以运行。这是什么原因,如果要写在getRoom里需要怎么改
代码A可以运行

const { mysql } = require('../qcloud')
    var index =  async (ctx, next)=>  {
      let data = ctx.request.body
      switch (ctx.request.body.fun) {
        case 'add': add(ctx, next); break;
        case 'getRoom': getRoom(ctx,next);break;
        default: err(ctx, next); break;
      }
     
      await mysql('aaa').select().from('room').then((back) => { ctx.state.data = { msg: back } })
    }

    var getRoom =  (ctx,next)=>{

   }

module.exports = { index: index }

代码B无返回值

const { mysql } = require('../qcloud')
    var index =  async (ctx, next)=>  {
      let data = ctx.request.body
      switch (ctx.request.body.fun) {
        case 'add': add(ctx, next); break;
        case 'getRoom': getRoom(ctx,next);break;
        default: err(ctx, next); break;
      }
     
     
    }

    var getRoom =  async(ctx,next)=>{
      await mysql('aaa').select().from('room').then((back) => { ctx.state.data = { msg: back } })
   }

module.exports = { index: index }
阅读 1.9k
1 个回答

既然getRoom已经是一个async了,调用它的时候需要await吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题