微信小程序-对request的封装

这里我只是对wx-request进行了封装 如果你需要对全局的api进行封装 参考:https://developers.weixin.qq.com/miniprogram/dev/extended/utils/api-promise.html

request.js promise 化

const baseUrl = "http://192.168.x.xx:18088/api/";
const app = getApp();
// 把请求包装成promise请求的方式
export default function (url, type, parmas, header) {
   const acc_token = wx.getStorageSync("token")||null;
   return new Promise((resolve, reject) => {
     在这加上全局的loadding
       if(app.globalData.language=='cn'){
           wx.showLoading({
               title: '加载中',
           })
       }else{
          
           wx.showLoading({
               title: 'Loading',
           })
       }
     
       wx.request({
           url: baseUrl + url,
           data: parmas || {},
           // 如果是表单提交 给我传的content-type为 application/x-www-form-urlencoded
           // 文件的上传 content-type 设置为multipart/form-data
           header:  {
               'content-type': 'application/json',
               "Authorization":'Bearer '+acc_token

           },
           method: type || 'POST',
           success: (result) => {

               if (result.statusCode == 200) {
                   
                   resolve(result.data.result,'ok');
               } else if(result.statusCode == 401){
                   resolve('当前没有登陆')
               }
               else {
                   // 说明是其他类型的错误
                   console.log('请求失败!当前的状态码为:', result.statusCode);
               }
           },
           fail: (err) => {
               reject(err);
           },
           complete: () => {
               setTimeout(function () {
                   wx.hideLoading()
               })
           }
       });
   })
}

使用:

import request from '../../request/request'
const data = await request("ExpenseType/getAllExpenseType", 'POST')

就可以啦。

你可能感兴趣的:(微信小程序-对request的封装)