以setData方法为例
如果是this.setData()
getData(){
var that = this
const db = wx.cloud.database() // 第一步连接数据库
const getData = db.collection('11') //连接数据库集合
console.log('ok')
app.globalData.dataObj = 'zhang'
db.collection('11').get({
success:function(res){
console.log(res)
console.log(res.data[0].name)
console.log('11111')
// this.data.dataObj = res.data[0].name
this.setData({
dataObj:app.globalData.dataObj
})
app.globalData.dataObj = res.data[1].name
console.log(that.data.dataObj)
}
})
console.log(that.data.dataObj)
// that.setData({
// dataObj:app.globalData.dataObj
// })
},
在getApp()函数中还嵌套了一个函数db.cllection(),在db.collection()中还有一个setData()函数,如果用this.setData(),后面的console.log()函数不会执行,准确的说是后面的代码都不会执行(不知道为啥),如果用that.setData()则会执行。如果不包含多重嵌套还是可以用this的:
test(){
this.setData({
dataObj:'111'
})
console.log('ok')
}
这个后面的代码就会执行。
总结:
用this可能会不执行,用that可以。