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到达,然后微信服务器才会更新数据。
wx.getUserProfile不能和wx.login一起使用?mac 模拟器1.05.2102010 基础库2.16.0 调用wx.login获取code后,再调用wx.getUserProfile,可能会失败,触发fail函数,error msg: ''getUserProfile:fail can only be invoked by user TAP gesture"。 如果不能同时使用,那如何校验用户信息的准确性或者解密encryptedData呢?
2021-08-241.网上的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到达,然后微信服务器才会更新数据。
wx.getUserProfile 与 wx.login有明确的调用顺序吗?新版接口改了之后 wx.getUserProfile 不能放入 wx.login 回调中,那是不是 wx.getUserProfile 可以优先与 wx.login 执行
2021-08-24