收藏
回答

小程序加载时,index页面onload调用app.js函数,为什么会重复输出?怎么解决啊?

// app.js
App({
  
  onLaunch() {
    var that=this
    // 展示本地存储能力
    that.getuserinfos().then(res=>{
      that.globalData.userinfo=res.data
      return that.getimg()
    }).then(res=>{
      that.globalData.imginfo=res
    }).catch(err=>{
      wx.setStorage({
        key:"userinfo",
        data:{"name":"你好","age":20}
      })
    })
    
    
  },
  getuserinfos(){
    return new Promise((resolve,reject)=>{
      wx.getStorage({
        key:"userinfo",
        success(res){
          resolve(res)
        },fail(err){
          reject(err)
        }
      })
    })
  },
  getimg(){
    var that=this
    return new Promise((resolve,reject)=>{
      wx.request({
        url'https://www.jianshu.com/p/912dc496d175',
        success(res){
          console.log(0)
          resolve(res)
        },
        fail(err){
          reject(err)
        }
      })
    })
  },
  globalData: {
    userinfo: {},
    imginfo:{}
  }
})
//index.js
const app = getApp()
Page({
  data: {
  },
  onLoad() {
    if (Object.keys(app.globalData.imginfo).length == 0 && Object.keys(app.globalData.userinfo).length == 0) {
      console.log(app.globalData.imginfo, app.globalData.userinfo)
    } else if (Object.keys(app.globalData.imginfo).length == 0) {
      app.getimg().then(res => {
        console.log(app.globalData.imginfo)
      })
    }
  }
})



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

2 个回答

  • undefined儿
    undefined儿
    01-18

    globalData 上注册回调,page 里执行这个回调,这种写法网上很多

    01-18
    有用
    回复 3
    • 小恶魔
      小恶魔
      01-18
      新手,能不能给个参考的网址看看啊,谢谢
      01-18
      回复
    • undefined儿
      undefined儿
      01-18回复小恶魔
      是所有页面都需要等这个回调执行完成后才能执行也能自己的生命周期么
      01-18
      回复
    • 小恶魔
      小恶魔
      01-18
      对,app打开时加载时候会读取json文件,有些时候分享其他页面的时候json数据拿不到,或者有别的方法吗
      01-18
      回复
  • 拾忆
    拾忆
    01-18

    自己执行了2次不是很正常?

    第一次:

    第二次:

    试试看删掉一个是不是就正常了。

    01-18
    有用
    回复 2
    • 小恶魔
      小恶魔
      发表于移动端
      01-18
      咋改呀,大佬,改成必须这个函数走完了再走index里的
      01-18
      回复
    • 小恶魔
      小恶魔
      发表于移动端
      01-18
      这样写有问题么大佬
      01-18
      回复
登录 后发表内容