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);
          }
        }
      })
    })
  }

}
View Code

 

 @天才卧龙的博客

posted @ 2022-03-01 15:17  天才卧龙  阅读(34)  评论(0编辑  收藏  举报