mpVue的api工具封裝

上一篇有記錄過uni-app中網絡的工具類,這裏記錄的是另外一種實現方式---基於Fly.js封裝api工具類javascript

Fly.js 是一個基於 promise 的,輕量且強大的Javascript http網絡庫,適合多端開發引用,有點就是支持請求/響應攔截器, 自動轉換 JSON 數據....java

1.首先安裝npm

npm install flyio / yarn add flyio
複製代碼

2.封裝工具類api

import Fly from "flyio/dist/npm/wx";

  let fly = new Fly,
    hostMap = {
      'development': 'https://www.baidu.test.com',
    };
    
  //配置請求基地址
  fly.config.baseURL = hostMap[process.env.NODE_ENV] || 'https://www.baidu.com';

  fly.config.timeout = 10000;

  // //添加請求攔截器
  fly.interceptors.request.use((config, promise) => {
      const AUTH_TOKEN = wx.getStorageSync('AUTH_TOKEN');

      if(!AUTH_TOKEN){
          console.error('未獲取到TOKEN');
      }

      config.headers.token = AUTH_TOKEN;
      return config;
  })

  fly.interceptors.response.use(
      (response, promise) => {
          if(response.data && response.data.success){
              return response.data.data;
          }else{
              if(response.data && (response.data.code == '10000005' || response.data.code == '10000003')){
                  let pages = getCurrentPages();
                  let currentPage = pages[pages.length-1];

                  if(currentPage.route != 'pages/daka/homePage/main'){
                    wx.navigateTo({
                      url: '/pages/daka/homePage/main'
                    });
                    return promise.reject('');
                  }
              }else{
                  if(response.data && response.data.message){
                      wx.showModal({
                          title: '提示',
                          showCancel: false,
                          content: response.data && response.data.message
                      });
                  }
                  return promise.reject('');
              }
          }
      },
      (err, promise) => {
          wx.hideLoading();
          console.warn(err);
          wx.showModal({
               title: '提示',
               showCancel: false,
               content: '網絡不流暢,請稍後再試!'
           });
      }
  )
  export default fly
複製代碼

調用工具類

import fly from "./fly";

const Api = { 
    login: param => {
      return fly.get(`api/loign?${param}`);
    }
}
export default Api
複製代碼
相關文章
相關標籤/搜索