数据库查询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)
})