更新记录
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写的,需要的私聊我参考: