微信小程序开发——数据库查询get()请求 及 this指向问题

数据库查询get()(推荐第二种方法——ES6箭头写法)

传统写法

success是一个闭包函数,无法访问闭包外的作用域,而onload函数是正常函数,

let that = this 的意义就是通过一个变量让闭包函数能访问到全局变量)

Page({
    dataL{
         list:[ ]
},
    onLoad(){
       console.log('onload里的this',this)
       //中间变量that,如果想在success里面使用外面这个this,就要定义一个全局变量that
        let that = this 
        //固定写法
        wx.cloud.database().collection('goods')
            .get({ //查询操作
               //请求成功
               success(res){
                   console.log('请求成功',res)
                   console.log('success里的that',that)
                   console.log('success里的this',this)
                   that.setData({  //使用建议用then方法写
                   list : res.data
                   })
               },
               //请求失败
               fail(err){
                  console.log('请求失败',err)
               }
            })
    }
})

es6的简洁写法

then就是一个异步执行操作,意思是当 .then()前的方法执行完后再执行 .then()部的程序,这样就避免了,爱护据没获取到等问题;catch一般用来抛出异常)

这里的this直接指向最外面的this

wx.cloud.database().collection('goods').get()
    .then(res => {
      console.log('第二种方法请求成功',res)
      this.setData({  //这里的this直接指向最外面的this
      list : res.data
       })
     })
    .catch(err => { //请求失败
      console.log('第二种方法请求失败',err)
     })

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普通の喵

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值