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
复制代码
相关文章
相关标签/搜索