小程序
小游戏
企业微信
微信支付
扫描小程序码分享
新版接口改了之后 wx.getUserProfile 不能放入 wx.login 回调中,那是不是 wx.getUserProfile 可以优先与 wx.login 执行
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
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 没有必然联系。无关顺序
你想要code的地方就wx.login
你想要userInfo的地方 就 wx.getUserProfile (注意重点:必须放在点击事件里面)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
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 没有必然联系。无关顺序
你想要code的地方就wx.login
你想要userInfo的地方 就 wx.getUserProfile (注意重点:必须放在点击事件里面)
wx.getUserProfile 在 wx.login之前,偶发解密失败。