微信小程序赋值显示问题

初学者求问。微信小程序中需要从服务器获取信息之后根据有无name显示不同的内容,以下两段代码都写在onlode中,上面的console.log打印出来内容正常,下面的console.log打印出来为空。 判定的也是按空来显示的 是我赋值的方法不对吗。 有试过把下面一段放在onshow中 没有变化

{
          getApp().globalData.length = res.data.data.length
          for (let i = 0; i < getApp().globalData.length; i++) {
          getApp().globalData._id = res.data.data[i]._id
          getApp().globalData.family_id = res.data.data[i].family_id
          getApp().globalData.student_id = res.data.data[i].student_id
          getApp().globalData.name = res.data.data[i].name
          getApp().globalData.clazz = res.data.data[i].clazz
          console.log(getApp().globalData.name)
        }}
var that = this
    console.log(getApp().globalData.name)
    if (getApp().globalData.name == "" || getApp().globalData.name == 'undefined') {
      this.setData({
        login: false
      });

    } else {
      this.setData({
        login: true
      })
    }

初始化值要在data里面赋值
其他地方赋值要用setData函数

您的方法执行是否是异步的,如果是异步的,那么 在您请求后端接口时,下面的方法已经开始执行了,还未等到您取回数据就已经执行完毕,这时候数据才从服务端取回,值也才赋值进去。