Es6 Promise 结合 async await ,枪毙回调地狱
十年河东,十年河西,莫欺少年穷
学无止境,精益求精
代码:
onLoad: function () { let that=this; that.initdata(); }, async initdata(){ let that=this; let RedisOptions =await request.request({ url: "/api/V1/Home/GetRedisOptions", method: "GET" }); console.log(RedisOptions) let FileOptions =await request.request({ url: "/api/V1/Home/GetFileOptions", method: "GET" }); console.log(FileOptions) }, // initdata(){ // let that=this; // let rst=null; // let RedisOptions = request.request({ // url: "/api/V1/Home/GetRedisOptions", // method: "GET" // }).then(result => { // console.log(result.data) // rst=result.data; // }); // // RedisOptions.then(A=>{ // request.request({ // url: "/api/V1/Home/GetCurrentUser", // method: "GET" // }).then(result => { // console.log(result.data) // // that.ResultData="result.data"; // console.log(that.ResultData) // }); // }) // },
Promise 的封装如下:
import * as common from "../../utils/config/config" const ApiUrl = common.config.swagger.apiUrl; var dayjs = require('dayjs') export const request = (parm) => { let tokenOverTime = wx.getStorageSync('tokenOverTime'); let bol = dayjs().isBefore(dayjs(tokenOverTime)); let token = wx.getStorageSync('token'); if (!bol || !token) { wx.showModal({ title: '提示', content: '请重新登录', showCancel: false, success: function (res) { if (res.confirm) { wx.reLaunch({ url: '/pages/index/index', }) } } }) } else { return new Promise((resolve, reject) => { parm.header = { "Authorization": token }; parm.url = ApiUrl + parm.url; wx.request({ ...parm, // 展开对象 success(res) { //console.log(res.data.Data) if (res.statusCode == 200 && res.data && res.data.resultCode == 0) { resolve(res.data); } else if (res.statusCode == 200 && res.data && res.data.resultCode == -1) { wx.showModal({ title: '系统异常', content: res.data.resultMessage, cancel: false }) reject(res.data); } else if (res.statusCode >= 500 && res.statusCode < 600) { wx.showModal({ title: '系统错误', content: '网络请求错误', cancel: false }) reject(res.data); } else { reject(res.data); } } }) }) } }
@天才卧龙的博客