我已经用Promise封装请求了,但还是异步的,看下代码吧
封装promise:
const post=(url,data)=>{
return new Promise((resolve,reject)=>{
wx.request({
url:url,
method:'POST',
dataType:'json',
data:data,
header:{'content-type': "application/x-www-form-urlencoded"},
success:function(res){
resolve(res.data)
},
fail: function() {
reject("请求数据失败");
},
})
})
}
请求问题:
let data;
if(this.data.list){
data=this.data.list;
}else{
util.post(url,reqData).then((res)=>{
console.log(res); //1
data=res.data.list;
});
}
console.log(data); //2
每次2比1先打印,感觉这种用的还是比较多的,想问下该怎么解决这个问题?
async await 试一下
小程序已经支持async await的用法,不过要开启增强编译
支持async/await语法