收藏
回答

onlauch 里异步请求在onload之后怎么解决?

有方案是新封装个方法 util.js , 这个方案需要每个页面都用到, 有没有更好的解决办法

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

4 个回答

  • 小鱼儿科技
    小鱼儿科技
    2022-12-18

    有一种方案:

    app.js中login后执行回调函数,通过getCurrentPages获取当前的页面,再调用page的onLogin 函数

    //app.js中

    async login(){

    //登录获取用户信息

    var res = await this.request({

    name:"user",

    data:{

    action:"get"

    }

    })

    if(res.success && res.userInfo){

    this.setUserInfo(res.userInfo)

    }else{

    this.clearUserInfo()

    }

    let pages = getCurrentPages()

    if(pages.length > 0){

    // console.log(pages[pages.length-1])

    pages[pages.length-1].onLogin && pages[pages.length-1].onLogin()

    }

    },


    //page 的js文件中

    onLogin(){

    // console.log("on login")

    var userInfo = app.getUserInfo();

    if (userInfo) {

    this.setData({

    hasUserInfo: true,

    userInfo: userInfo

    })

    }

    },


    2022-12-18
    有用
    回复
  • Api调用师
    Api调用师
    2022-01-10

    这有个终极解决方案:https://developers.weixin.qq.com/community/develop/article/doc/00002ac57208f0e7335d111f156013

    2022-01-10
    有用
    回复
  • 夜深
    夜深
    2021-05-20

    解决这个问题,可以看一下我的这篇文章https://developers.weixin.qq.com/community/develop/article/doc/00086219508c28eebf2ce485d56c13

    2021-05-20
    有用
    回复
  • Admin ²º²⁴
    Admin ²º²⁴
    2020-10-14

    1、onlauch改成同步?

    2、onLoad里setTimeOut?


    2020-10-14
    有用
    回复
登录 后发表内容
问题标签