收藏
回答

云开发修改数据库的问题

问题代码:

e:function()
  {
    const db=wx.cloud.database();
    db.collection('menu').doc('len').get({
      success:res=>{
        console.log(res)
        this.setData({a:false})
        console.log(this.data.a)//调用成功后修改数据并打印
      },
      fail:err=>{
        throw err
      }
    })
    console.log(this.data.a);//在调用的外面打印
  },

定义一个函数用于调用数据库中的内容,并在调用成功后修改页面的数据 a(原本数据a为true),打印的结果为true(在我理解中,即页面数据中的a已经被修改为true)。在调用数据库的函数外再次打印 a 出来的结果仍为 false。请问是否是在修改数据库的返回函数进行修改数据是不能做到修改页面的相应数据的????如果是,怎么样才能做到完调用数据成功后修改页面的数据???? 感谢各位大佬的帮助

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

3 个回答

  • 阿巴阿巴
    阿巴阿巴
    2019-07-17

    需要在云函数中处理一些异步操作,在异步操作完成后再返回结果给到调用方。此时我们可以通过在云函数中返回一个 Promise 的方法来完成

    2019-07-17
    有用 1
    回复 1
    • Darren i
      Darren i
      2019-07-17
      谢谢大佬
      2019-07-17
      回复
  • Wang
    Wang
    2019-07-16

    函数是异步的

    2019-07-16
    有用 1
    回复
  • 老张
    老张
    2019-07-16

    异步的原因。

    2019-07-16
    有用 1
    回复 1
    • Darren i
      Darren i
      2019-07-17
      谢谢大佬
      2019-07-17
      回复
登录 后发表内容