国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

mpvue中使用flyjs全局攔截的實現代碼

2019-11-19 12:57:13
字體:
來源:轉載
供稿:網友

我們安裝好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 FlyVue.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 })

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西青区| 清涧县| 清镇市| 五莲县| 建平县| 金塔县| 廊坊市| 江永县| 马公市| 台江县| 九龙城区| 内乡县| 措勤县| 建平县| 军事| 桃园县| 永寿县| 博罗县| 绵阳市| 哈巴河县| 秦安县| 香港 | 余江县| 喀什市| 凉山| 永平县| 唐河县| 靖远县| 苏州市| 禹城市| 盐边县| 密云县| 永寿县| 百色市| 肇庆市| 秦安县| 涿鹿县| 阿荣旗| 家居| 屏东市| 华池县|