更新记录

1.0.3(2020-04-15)

更新finally指定可用版本,修改api.js 参数bug

1.0.2(2019-12-04)

分离api文件和config文件,便于维护,

1.0.1(2019-11-06)

新增

查看更多

平台兼容性

flyio

按需安装:

var Fly = require("flyio/dist/npm/wx")//npm install flyio --save
var md5 = require('js-md5');//npm install js-md5 --save
require('promise.prototype.finally').shim() //npm install promise.prototype.finally@3.1.1  --save

前端关键代码

fly.interceptors.response.use(
    async function (response) {
            // 如果请求报错
            if (response.data.code != 10000) {
                if(response.data.code == 401){ 
                    fly.lock();//锁住请求队列,先执行获取token操作
                    let code = await wxLogin(); 
                    return newFly.get("/wechat/getToken", {code: code}).then((d) => {
                        //request.headers["token"]  = d.data.token;
                        uni.setStorageSync('token',d.data.token);
                    }).finally(() => fly.unlock()) //解锁后,会继续发起请求队列中的任务 
                     .then(() => {
                        console.log(`重新请求:path:${response.request.url},baseURL:${response.request.baseURL}`)
                        return fly.request(response.request);
                    })

                }
            }else{
                //只将请求结果的data字段返回
                return response.data.data
            }
            return response;
        },
        (err) => {
            //发生网络错误后会走到这里
            return Promise.resolve("网络请求:ERROR!")
        }
)

main.js

统一配置:

import Api from './api/api'
Vue.prototype.$api = Api

test.vue

页面调用:

let res = await this.$api.login();

php

后端我是tp写的,需要的私聊我参考:

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问