需要先获取code再执行下面的请求,结果还未获取到code就执行了请求,请问异步要怎么写才对
可以写这样试试看~
Page({
onLoad() {
// 获取code
const getCode = new Promise((resolve) => {
wx.login({
success: (res) => {
resolve(res.code);
}
})
})
// 请求获取openId
const getOpenId = (code) => {
return new Promise((resolve) => {
wx.request({
method: 'GET',
url: '',
data: {
appid: '11',
js_code: code,
// ...
},
success: (res) => {
resolve(res.data)
}
})
})
}
// 调用
getCode.then(code => {
console.log(code);
return getOpenId(code);
}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
},
})
直接放里面
1.异步处理一般三种 回调
2.promise
3.ansyc await
你看你需要哪种
其实也可以不用promise,直接将你下面那个请求封装在一个函数里,当获取code值后再调用那个请求函数就可以了