1肋联、下載facebook的regeneratorRuntime
npm i regeneratorRuntime
把node_modules\regenerator-runtime路徑下的runtime-module.js和runtime.js文件放到小程序開發(fā)文件內(nèi)
2肤无、在wxRequest和使用async await的js文件引入
import regeneratorRuntime from '../regenerator-runtime/runtime-module'
3论泛、封裝wxRequest,讓它支持async-await
import regeneratorRuntime from '../regenerator/runtime-module';
const wxRequest = async (url, data = {}, method, hideLoading) => {
//默認(rèn)帶上openid
Object.assign(data, {
openid: app.globalData.openid
});
let header = {
'Content-Type': 'application/x-www-form-urlencoded',
};
//默認(rèn)使用POST方式
method = method || 'POST';
// hideLoading可以控制是否顯示加載狀態(tài)
if (!hideLoading) {
wx.showLoading({
title: '加載中...',
})
};
let res = await new Promise((resolve, reject) => {
wx.request({
url: url,
method: method,
data: data,
header: header,
success: (res) => {
if (res && res.data && res.data.status == 200) {
resolve(res.data);
} else {
reject(res);
}
},
fail: (err) => {
reject(err);
},
complete: () => {
wx.hideLoading();
}
});
}).catch((e)=>{return e.data});
return res;
}
export {
wxRequest
}
4所禀、使用async await的頁面引入
import {
wxRequest
} from "../../../../utils/wxRequest";
import regeneratorRuntime from '../../../../utils/regenerator/runtime-module';