收藏
回答

云函数不运行

框架类型 问题类型 终端类型 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()还没运行就结束了?求解!!!


最后一次编辑于  2019-02-20
回答关注问题邀请回答
收藏

2 个回答

  • Dream
    Dream
    2019-02-21

    本问题已解决:

    方法 async/await

    模板

    var data你需要返回的数据

    try{

    var a=await new promisea

    var b=await new promiseb

    return 你需要返回的数据data

    }catch(err){

    }

    运行顺序a至b

    2019-02-21
    有用
    回复
  • 老张
    老张
    2019-02-20

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

    2019-02-20
    有用
    回复 6
    • Dream
      Dream
      2019-02-20

      不去掉就报错

      2019-02-20
      回复
    • Dream
      Dream
      2019-02-20回复Dream

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

      2019-02-20
      回复
    • 老张
      老张
      2019-02-20回复Dream

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

      2019-02-20
      回复
    • Dream
      Dream
      2019-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)

      }

      运行就报错

      2019-02-20
      回复
    • 老张
      老张
      2019-02-20回复Dream

      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

      }

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

      2019-02-20
      回复
    查看更多(1)
登录 后发表内容