问题描述:
微信小程序中的函数是异步调用的,因此如果需要先执行一个函数,然后的到函数的返回值,在执行下一个函数(特别是调用数据库操作,因为数据库查询比较慢),就要采用异步操作
解决方法:
利用Promise解决异步问题
实例:在A界面中查找数据库,若数据库中存在用户的信息(证明用户已经登录过),修改全局变量。B界面利用这个全局变量实现头像和昵称的显示
app.js(A界面):
//查找用户是否在数据库中
findUsersInDB() {
var that = this
let promise = new Promise(function (success, fail) {
const db = wx.cloud.database() //初始化数据库
//判断用户是否已经存在数据库中
wx.cloud.callFunction({
name: 'login',
data: {
}
}).then((res) => {
//查询数据库中是否有相同的openid
db.collection('users').where({
_openid: res.result.openid
}).