微信小程序在app.js修改后的全局变量值在其他页面异步获取
前端吧
全部回复
仅看楼主
level 7
微信小程序在app.js修改后的全局变量值在其他页面异步获取的问题
虽然app.js先于index.js。但是修改app.js中的全局变量是异步请求,如果你想在index.js里获取app.js修改后的值,那么需要使用promise来实现异步。
小程序默认项目自带了一种获取授权头像的信息了promise实现异步操作同步显示流程 网页链接 App({ //获取授权的头像信息 检测授权 getUserInfo() { return new Promise((resolve, reject) => { // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { wx.getUserInfo({ success: res => { // 可以将 res 发送给后台解码出 unionId = resolve(this.globalData.userInfo); // 这里是关键 } }) }else{ //之前没有授权信息头像 reject(this.globalData.userInfo) wx.redirectTo({ url: '/pages/about/about' }) console.log("未授权"); } } }) }) }, globalData: { userInfo: null }})const app = getApp()Page({ data: { userInfo: {}, hasUserInfo: false, }, onLoad: function () { //检测授权信息 app.getUserInfo().then(res=>{ console.log(res); this.setData({ hasUserInfo:true, userInfo:res }) }) }, getUserInfo: function(e) { console.log(e) = this.setData({ userInfo: e.detail.userInfo, hasUserInfo: true }) }})<view class="container"> <view class="userinfo"> <button wx:if="{{!hasUserInfo}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 <^tton> <block wx:else> <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> <ock> <7iew><7iew>
2020年09月03日 10点09分 1
1