var nLastRecord
const db = wx.cloud.database()
db.collection('dic_food')
.orderBy('food_id', 'desc')
.limit(0)
.get({
success: res => {
nLastRecord=res.data[0].food_id
console.log('nLastRecord1', nLastRecord)
next
},
})
console.log('nLastRecord2', nLastRecord)
nLastRecord2 undefined
nLastRecord1 6
为什么扩号外的变量没结果?
因为异步了,跟变量作用域无关。
你可以看到先打印2(以下把log1,log2简称为1,2),如下:
nLastRecord2 undefined
说明这条语句2先于1执行,代表的是1还没执行就先执行2了,这个时候变量的值是undefined的。为什么会这样,因为db.collection('dic_food')以及后面的代码是异步执行的,就是不等待执行结果继续往下执行打印2
而1是在db.collection('dic_food')以及后面的代码的回调中执行的,回调的时候已经有值了,所以能打印正确的值
https://blog.csdn.net/er_ba/article/details/79310727
一个是全局变量一个是局部变量,赋值只附给了局部变量