用户授权,在app.js中做全局变量,打印出来是undefined,查了很多资料说是异步问题,从来没有做过异步类的问题,修改后还是同样的问题,这段代码要怎么改呢?求助
app.js代码:
// app.js
App({
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力');
} else {
wx.cloud.init({
env: '',
traceUser: true,
});
}
this.globalData = {};
this.loadUserInfo();
},
async loadUserInfo() {
var that = this;
return await wx.cloud.database().collection('login')
.where({
_openid: 'openid'
}).get(
new Promise((resolve, reject) => {
wx.getSetting({
success: res => {
console.log(res);
const isuserInfo = res.authSetting['scope.userInfo']
if (isuserInfo) {
wx.cloud.database().collection('login').where({
_openid: 'openid'
}).get().then(result => {
console.log(result)
that.globalData.userInfo = result.data[0]
})
}
}
})
})
)
},
is_login() {
console.log(this.globalData.userInfo);
if (this.globalData.userInfo) {
return true
} else {
return false
}
},
// pages/login/login.js
const app =getApp();
const db = wx.cloud.database();
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
// 获取头像
getAvatar(event){
console.log(event.detail.avatarUrl);//临时头像路劲地址
let avatarUrl = event.detail.avatarUrl;//临时地址
let suffix = /\.[^\.]+$/.exec(avatarUrl)[0];
wx.cloud.uploadFile({
cloudPath: 'loginImages/' + new Date().getTime() + suffix,
filePath:avatarUrl //上传到云端的路劲,
}).then(res => {
console.log(res.fileID);
this.setData({
avatarUrl:res.fileID
})
})
},
login(event){
var that = this;
console.log(event.detail.value.nickName);
let nickName = event.detail.value.nickName;
// let avatarUrl = that.data.avatarUrl;
if(!nickName){
wx.showToast({
title:'请填写昵称',
icon:'error'
})
return
}
if(!this.data.avatarUrl){
wx.showToast({
title:'请上传头像',
icon:'error'
})
return
}
console.log(app.globalData.userInfo);
db.collection('login').where({
_openid:app.globalData.openid
}).get({
success(res){
console.log(res)
if(res.data.length == 0){
//添加记录到数据库
// var avatarUrl = that.data.avatarUrl;
db.collection('login').add({
data:{
num:Date.now(),//!QQ号
avatarUrl:that.data.avatarUrl,
nickName:nickName
},
success(res){
console.log(res)
wx.showToast({
title:'登陆成功',
})
settimeout({},1500)
我的页面user-center.js代码
// pages/user-center/user-center.js
const app = getApp();
const db = wx.cloud.database();
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(app.is_login());
if(app.is_login()){
this.setData({
userInfo: app.globalData.userInfo,
avatarUrl: app.globalData.userInfo.avatarUrl,
nickName: app.globalData.userInfo.nickName
})
}
},
onuserInfo(){
wx.navigateTo({
url:'/pages/login/login'
})
},