收藏
回答

在app.js里发生请求,成功后设置的全局变量为什么获取不到?

App.js

onRequest:function(){

    var that = this

    wx.requst({

        url:"xxxx",

        success:function(res){

              that.globalData.data = res.data

        }

    })

}


index.js

const app  = getApp()

Page({

    data: {},

    onShow: function () {

        app.onRequest()

        console.log(app.globalData.data)   // 返回的是underfind , 请问是为什么?

    },

})


最后一次编辑于  2019-08-24
回答关注问题邀请回答
收藏

2 个回答

  • 云袋科技
    云袋科技
    2019-08-25

    楼上回复正确,异步请求是有时间延迟,在你进入index  onshow 触发 app.onRequest()还没成功返回时,就执行到了  console.log(app.globalData.data)  自然没有数据,你可以写一个回调, app.onRequest()执行成功后进行回调处理接下来的业务

    2019-08-25
    赞同
    回复 1
    • 清茶苦酒
      清茶苦酒
      2019-08-26
      才入行没多久...该怎么写?
      2019-08-26
      回复
  • 痛快科技
    痛快科技
    2019-08-24

    异步。打印时app.onRequest还没有返回

    2019-08-24
    赞同
    回复 3
    • 清茶苦酒
      清茶苦酒
      2019-08-26
      才入行没多久...该怎么写?
      2019-08-26
      回复
    • 痛快科技
      痛快科技
      2019-08-26回复清茶苦酒
      App.js
       
      onRequest:function(cb){
       
          var that = this
       
          wx.requst({
       
              url:"xxxx",
       
              success:function(res){
                    that.globalData.data = res.data
                    if(cb)cb();
              }
       
          })
       
      }
       
       
       
      index.js
       
      const app  = getApp()
       
      Page({
       
          data: {},
       
          onShow: function () {
       
              app.onRequest(function(){
                console.log(app.globalData.data)
              }) 
          },
       
      })


      2019-08-26
      回复
    • 清茶苦酒
      清茶苦酒
      2019-09-11回复痛快科技
      谢谢谢谢
      2019-09-11
      回复
登录 后发表内容
问题标签