关于微信小程序在app.js修改后的全局变量值在其他页面异步获取的问题

本文介绍在微信小程序中如何使用Promise处理异步请求,具体演示了在app.js中修改全局变量并通过index.js获取更新后的用户信息的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

虽然app.js先于index.js。但是修改app.js中的全局变量是异步请求,如果你想在index.js里获取app.js修改后的值,那么需要使用promise来实现异步。

app.js

 //app.js
App({
   globalData: {
     userInfo: null
   },
 // 检测授权
  getauthor: function () {
    return new Promise((resolve, reject) => {
          wx.getSetting({
            success: (res) => {
              if (res.authSetting["scope.userInfo"]) {
                console.log("已授权");
                wx.getUserInfo({
                  lang: 'zh_CN',
                  success:(res)=> { //箭头函数为了处理this的指向问题
                    this.globalData.userInfo = res.userInfo;
                    resolve(this.globalData.userInfo); // 这里是关键
                  }
                })
              }
              else {
                reject(this.globalData.userInfo)
                wx.redirectTo({
                  url: '/pages/author/author'
                })
                console.log("未授权");
                wx.removeStorage({
                  key: 'unionid'
                })
              }
            }
          })
    })
  }
})

index.js

	// 获取用户信息
      app.getauthor().then(res => {
                   console.log(res);
      })

因为要首先加载index页面,所以需要使用异步请求,在其他页面的话,可以直接使用app.globalData.userInfo.userInfo,

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vam的金豆之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值