小程序大部分函数和数据库操作都是异步执行的,如果希望同步执行,需要用到async 和await这对基友,必须成对出现。
为了快速验证 async/await 可用,在 App.js 的 onLaunch() 事件函数中加一段代码:
//同步请求接口的公共方法-用到的地方需要配合使用async await才能调用(封装示例)
wx_tb_request(url,method=’get’,data={}){
return new Promise((resolve,reject)=>{
// 异步请求
wx.request({
url: url,
method: method,
data: data,
dataType: ‘json’,
header: {
‘content-type’: method == ‘GET’?’application/json’:’application/x-www-form-urlencoded’,
‘Accept’: ‘application/json’
},
success:(res)=>{
resolve(res.data);//返回的就是接口完整数据-打印res的话会包含header头等信息
},
fail:(err)=>{
reject(err);
}
});
})
},
/**
* 那个地方需要调用,所在的方法就需要使用async声明,里面才可以(同时await声明一下)调用异步请求(封装示例)
*/
/********轮播 */
async lunbo() {
var res=await app.wx_tb_request(app.domain ’/api/index/lunbo’,’post’);
if(res.code==1){
this.setData({
imgUrls:res.data,
})
}
未经允许不得转载:肥猫博客 » 微信小程序异步转同步如何实现?(亲测可行)