收藏
回答

云函数怎么同步执行?

Page({

data: {

i:""

},

onLoad: function() {

this.gettest();

console.log("i:"+this.data.i)

},

gettest: function() {

wx.cloud.callFunction({

name:'test'

}).then(res => {

this.setData({ i:res.result.data.length })

console.log("in gettest i:"+this.data.i)

})

.catch(console.error)

}

})

// 云函数入口文件

const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()

const _ = db.command

const result = ''

// 云函数入口函数 查询所有pname不为空的记录 (假定有100条记录)

exports.main = (event, context) => {

return new Promise((resolve, reject) => {

db.collection('tstd').where({

pname: _.neq('')

}).get().then((res) => {

resolve(res)

})

})

}

运行结果:

i:

in gettest i:100

而希望的结果是

in gettest i:100

i:100

回答关注问题邀请回答
收藏

2 个回答

  • MUJO
    MUJO
    2021-09-07

    这个无解,使用回调函数吧

    2021-09-07
    有用
    回复
  • 微盟
    微盟
    2020-04-27
    npm install regenerator
    

    将下载文件中名为regenerator-runtime.js的文件拿出来 放入小程序

    在页面js 引用regenerator-runtime,例如:

    const regeneratorRuntime = require('../../libs/regenerator-runtime')
    

    就可以在小程序页面中使用async await 语法糖了

    2020-04-27
    有用
    回复 1
    • 天马行空
      天马行空
      2020-04-27
      木有用哦
      2020-04-27
      回复
登录 后发表内容
问题标签