收藏
回答

从小程序profile页进入小程序,会导致globalData的丢失吗?

当小程序没删除或者没从后台退出时,再从小程序profile页进入小程序,会导致所有的请求失效,推测原因是存放在globalData中的用户token数据丢失导致的。而点击右上 。。。 (三点图标),重新进入小程序,就并不会有这个问题。

请问从小程序profile页进入,和重新进入小程序并不是完全相等吗??

以下是详细的介绍,及个人推测:

在小程序首页调用用户登录接口,并将返回的token作为全局变量保存起来。

以下是首页:

request({
  data:{
    "code" : res.code
  },
  url: '/user/login',
  method:'POST',
  header:{
    'content-type':'application/json'
  },
})
.then(res => {
  let {
    openId,
    registered
  } = res.data.data;


  app.globalData.token = res.cookies[0];
  app.globalData.openId = openId;
  app.globalData.registered = registered;

以下是app.js

  globalData: {
    userInfo: null,
    personalManagementOrCollection : 1,
    token : ''
  }


推测 :从profile 页进入时,globalData的加载,晚于首页的onLoad() ,所以 token 被空字符串覆盖掉了

回答关注问题邀请回答
收藏

3 个回答

  • 2022-01-06

    使用promise即可处理

    2022-01-06
    有用 1
    回复
  • 武曲心
    武曲心
    2021-12-13

    别什么推测了,自己调试打印一下变量不就知道了吗

    2021-12-13
    有用
    回复
  • 老张
    老张
    2021-12-11

    目测是异步问题。

    2021-12-11
    有用
    回复 1
    • 苏泽坤
      苏泽坤
      发表于移动端
      2021-12-11
      嗯嗯,全局变量的设置是放在了.then()方法里面的。
      2021-12-11
      1
      回复
登录 后发表内容