收藏
回答

wx.getUserProfile 与 wx.login有明确的调用顺序吗?

新版接口改了之后 wx.getUserProfile 不能放入 wx.login 回调中,那是不是 wx.getUserProfile 可以优先与 wx.login 执行

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

2 个回答

  • Shivane
    Shivane
    2021-08-24

    1.网上的promise.all的方式处理,我没试但是我感觉是不行的。all只是把login和getinfo同时运行罢了,但是这两个实际都是异步,到底哪个先触发实际是没法确定的。

    2.我这里搞了个比较巧妙的方式,是Taro当然微信原生的代码也是一样的处理方式,原理相同。

      getInfo= async()=>{

        var res = await Taro.getUserProfile({desc:this.login()})

        console.log(res);

      }

      login = ()=>{

        Taro.login().then((res)=>{console.log(res);})

        return '用于完善会员资料';

      }

    这样login一定比getUserProfile先执行,后面同时拿到两个接口的结果,丢给服务器就行。这个解密失败的问题,一定要保证login的网络请求先getUserProfile到达,然后微信服务器才会更新数据。

    2021-08-24
    有用 1
    回复 1
    • D
      D
      2021-09-26
      6
      2021-09-26
      回复
  • 郑钱花
    郑钱花
    2021-05-10

    wx.getUserProfile 与 wx.login 没有必然联系。无关顺序

    你想要code的地方就wx.login

    你想要userInfo的地方 就 wx.getUserProfile (注意重点:必须放在点击事件里面)

    2021-05-10
    有用 1
    回复 5
    • 王
      2021-05-10
      感谢
      2021-05-10
      回复
    • D
      D
      2021-07-16
      顺序错了就会偶发解密失败。至今没找到好的方案。
      wx.getUserProfile 在 wx.login之前,偶发解密失败。
      2021-07-16
      1
      回复
    • 董
      2021-07-29回复D
      你的问题解决了吗
      2021-07-29
      回复
    • 啊楠
      啊楠
      2021-09-15
      应该是有顺序关系的把,今天把wx.getUserProfile 放在wx.login 之前,导致后台Java一直解析失败
      2021-09-15
      回复
    • Rubine
      Rubine
      2022-04-01回复D
      调用有顺序的。否则第一次必定解密失败!
      2022-04-01
      回复
登录 后发表内容