这个问题困扰了很久了
比如
var aaa = function bbb()
if (aaa) {
do something
}
function bbb() {
wx.login({
success: function(res) {
return res
}
})
}
但这样写肯定不行, 貌似在success 里面return 无效,
怎么才能获取到aaa 的值。
怎么才能登陆成功后再往下走,不想把代码写在success里面去
谢谢了!
我用的办法是这样的: 执行异步操作后,每2秒轮询temp,不为空则再执行后续操作
var aaa = ''
var run=0
this.function bbb()
function bbb() {
if (run==0){
//等待
wx.showToast({
title: '登录中',
icon: 'loading',
duration: 10000
})
wx.login({
success: function(res) {
aaa=res
}
})
run=1 //切换标志,防止重复登录
this.bbb() //递归
return
}else{
//等待2秒后检查状态
setTimeout(function(){
if (aaa!=''){
wx.hideToast() //关闭loading
return //得到结果,终止递归
else{
this.bbb() //继续递归
return
}
},2000)
}
}