我们安装好flyio之后
npm install flyio
找到src目录下的main.js文件
首先引入flyjs并实例化
var Fly=require("flyio/dist/npm/wx") var fly=new Fly
比方说我们每次请求我们自己的服务器接口的时候需要带上appID,用户登陆后需要带上openId
// 请求拦截 fly.interceptors.request.use((request)=>{ request.body.appId = 'xxx' // 用户的openId在获取之后添加到全局变量中如果存在,我们将它添加到请求参数里面 let openId = Vue.prototype.globalData.openId; if(openId){ request.body.openId = openId } })
当服务器发生错误,或者用户网络错误导致请求失败的时候,我们可以添加一个响应拦截
// 响应拦截 fly.interceptors.response.use( (response) => { }, (err) => { //发生网络错误后会走到这里 //return Promise.resolve("ssss") wx.hideLoading(); wx.showToast({ title:'网络不流畅,请稍后再试!', icon:'none', }); })
最后将flyjs挂载到vue的原型上
// 将fly挂载在Vue的原型上 Vue.prototype.$flyio = fly
不同页面直接使用this.$flyio请求(是不是很方便)
示例:
fly里面的拦截机制还是很强大的,并且在错误返回信息做了优化处理,在fly拦截器中支持执行异步任务,就是说在请求数据的时候如果拦截到token不存在那么我们就可以在拦截器中重新获取token,再接着执行之前的请求。
const Fly = require("flyio/dist/npm/wx") const fly = new Fly Vue.prototype.$http = fly; fly.interceptors.request.use((request) => { //给所有请求添加自定义header if (api.Get('token')) { request.timeout = 30000, request.headers = { "content-type": "application/json", "cld.stats.page_entry": api.Get('scene'), "version": store.state.version, "token": api.Get('token') } wx.showLoading({ title: "加载中", mask: true, }); return request; } else { fly.lock();//锁住请求 return Public.Load().then(res => { request.timeout = 30000, request.headers = { "content-type": "application/json", "cld.stats.page_entry": api.Get('scene'), "version": store.state.version, "token": api.Get('token') } wx.showLoading({ title: "加载中", mask: true, }); //等待token返回之后在解锁, fly.unlock(); return request;//继续之前的请求, }) } }) fly.interceptors.response.use( (response) => { wx.hideLoading(); return response }, (err) => { wx.hideLoading(); if (err.status == 0) { return "网络连接异常" } else if (err.status == 1) { return "网络连接超时" } else if (err.status == 401) { return "用户未登录" } else { if (err.response.data.message) { return err.response.data.message } else { return '请求数据失败,请稍后再试' } }; // Do something with response error } )
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。