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到达,然后微信服务器才会更新数据。