收藏
回答

云函数不运行

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 工具 wxfb3370056ca8a4a4 2.0.4




主函数里面

return new Promise(function(resolve,reject){

var data='1'

var num=await db.collection('user').count()

console.log(num)//获取满足的用户数量

return resolve(data)

})


如果去掉await,console.log(num)显示Promise{<pending>}


该怎样解决var num=await db.collection('user').count()还没运行就结束了?求解!!!


最后一次编辑于  02-20  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 老张
    老张
    02-20

    await不就是为了解决这个问题的吗?怎么可以去掉?

    02-20
    赞同
    回复 6
    • Mr.Hu
      Mr.Hu
      02-20

      不去掉就报错

      02-20
      回复
    • Mr.Hu
      Mr.Hu
      02-20回复Mr.Hu

      我昨天到今天一直没能解决,不知道啥原因

      02-20
      回复
    • 老张
      老张
      02-20回复Mr.Hu

      async和await是成对出现的,没看到你的async。

      02-20
      回复
    • Mr.Hu
      Mr.Hu
      02-20回复老张

      你看:

      module.exports = {

      main: async (event, context) => {

      var password = event.password

      var name = event.username

      return new Promise(function (resolve, reject) {

      /*...部分代码省略...**/

      var data='1'

      var num=await db.collection('user').count()

      console.log(num)//获取满足的用户数量

      return resolve(data)

      }

      运行就报错

      02-20
      回复
    • 老张
      老张
      02-20回复Mr.Hu

      module.exports = {

      main: async (event, context) => {

      var password = event.password

      var name = event.username

      var data='1'

      var num=await db.collection('user').count()

      console.log(num)//获取满足的用户数量

      return {data}//小程序端会返回这个data

      }

      没看懂你的代码,但是上面这样写应该是不会出错的。

      02-20
      回复
    查看更多(1)
  • Mr.Hu
    Mr.Hu
    02-21

    本问题已解决:

    方法 async/await

    模板

    var data你需要返回的数据

    try{

    var a=await new promisea

    var b=await new promiseb

    return 你需要返回的数据data

    }catch(err){

    }

    运行顺序a至b

    02-21
    赞同
    回复