最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序中如何使用flyio封裝網(wǎng)絡(luò)請求

 更新時間:2019年07月03日 11:35:03   作者:奮斗的七月  
這篇文章主要介紹了微信小程序中如何使用flyio封裝網(wǎng)絡(luò)請求,F(xiàn)ly.js 通過在不同 JavaScript 運(yùn)行時通過在底層切換不同的 Http Engine來實(shí)現(xiàn)多環(huán)境支持,但同時對用戶層提供統(tǒng)一、標(biāo)準(zhǔn)的Promise API,需要的朋友可以參考下

Flyio簡介

Fly.js 通過在不同 JavaScript 運(yùn)行時通過在底層切換不同的 Http Engine來實(shí)現(xiàn)多環(huán)境支持,但同時對用戶層提供統(tǒng)一、標(biāo)準(zhǔn)的Promise API。不僅如此,F(xiàn)ly.js還支持請求/響應(yīng)攔截器、自動轉(zhuǎn)化JSON、請求轉(zhuǎn)發(fā)等功能,詳情請參考:https://github.com/wendux/fly 。

下面我們看看在微信小程序、mpvue中和中如何使用fly.

Flyio 官方地址

文檔

github地址

Flyio的一些特點(diǎn)

fly.js 是一個基于 promise 的,輕量且強(qiáng)大的Javascript http 網(wǎng)絡(luò)庫,它有如下特點(diǎn):

  • 提供統(tǒng)一的 Promise API。
  • 瀏覽器環(huán)境下,輕量且非常輕量 。
  • 支持多種JavaScript 運(yùn)行環(huán)境
  • 支持請求/響應(yīng)攔截器。
  • 自動轉(zhuǎn)換 JSON 數(shù)據(jù)。
  • 支持切換底層 Http Engine,可輕松適配各種運(yùn)行環(huán)境。
  • 瀏覽器端支持全局Ajax攔截 。
  • H5頁面內(nèi)嵌到原生 APP 中時,支持將 http 請求轉(zhuǎn)發(fā)到 Native。支持直接請求圖片。

在小程序中使用flyio請求,封裝代碼如下

一、src下新建utils/request.js文件

var Fly=require("flyio/dist/npm/wx") 
import { getCache } from '../utils'
const request = new Fly()
// 全局加載提示 - 設(shè)定時間
let ltime = 0;

function closeLoading(param) {
  ltime--
 }
request.interceptors.request.use((request) => {
  // 全局加載提示 - 展示提示
  // wx.showNavigationBarLoading() 
  ltime++
  let dataSource = getCache("dataSource")
  request.headers = {
    "Content-Type": "application/x-www-form-urlencoded",
    "source": "miniApp",
    "dataSource": dataSource ? dataSource : ''
  }
  // 沒用到
  if (request.url.indexOf('getReviewInfo') != -1) {
    closeLoading()
    return request
  }
  // 登錄
  console.log('這是token');
  console.log();
  let type = '';
  if(request.url.indexOf("wxLogin") != -1) {
    type = request.body.loginType;
  }
  console.log(getCache("token"));
  console.log('這是token');
  if (request.url.indexOf("wxLogin") == -1 || type == 'WORKBENCH') {
    // let storeId = getCache("storeId");
    let storeCode = getCache("storeCode");
    let inviter = getCache("inviter");
    let token = getCache("token");
    request.headers = {
      "Content-Type": "application/x-www-form-urlencoded",
      "source": "miniApp",
      "token": token,
      "storeCode": storeCode,
      "inviter": inviter
    }
    console.log('打印request');
    console.log(request);
    console.log('打印request');
    let dataSource = getCache("dataSource")
    if (dataSource) {
      request.headers['dataSource'] = dataSource
    }
  }
  return request
})
request.interceptors.response.use((response, promise) => {
     closeLoading()
    // wx.hideNavigationBarLoading()
    // 微信運(yùn)維統(tǒng)計
    if (response.status) {
      wx.reportMonitor('0', +(response.status))
    }
    if (response.headers.date) {
      let time = new Date().getTime() - new Date(response.headers.date).getTime()
      wx.reportMonitor('1', +(time))
    }
    // 錯誤提示
    if (response.status != 200) {
      wx.showToast({
        title: '出錯啦!請稍后再試試哦~',
        icon: 'none',
        duration: 2000
      })
    }
    return promise.resolve(response.data)
  },
  (err, promise) => {
    wx.hideNavigationBarLoading()
    return promise.resolve()
  }
)
export default request

二、src下新建utils/api.js文件

export const baseUrlApi = 'http://192.168.128.242:8080'//---開發(fā)調(diào)試環(huán)境
//export const baseUrlApi = 'https://test.mini.com'//---測試環(huán)境https
//export const baseUrlApi = 'https://product.mini.com'//---生產(chǎn)環(huán)境https

這個里面可以寫不同環(huán)境或者調(diào)試的接口地址

三、src下新建service文件夾

在這個下面不同的模塊簡歷不同的js文件,例如:login-service.js,order-service.js

里面代碼示例如下

import { baseUrlApi } from '../utils/api'
import request from '../utils/request'

export default {
 // 登錄
  wxLogin: (data) =>
    request.post(`/store-miniApp-web/external/interface/wechat/wxLogin`, data, { baseURL: baseUrlApi }),
 // 收藏
 addCollect: (goodId, status) =>
  request.get(`/store-miniApp-web/store/member/addCollect?goodId=${goodId}&status=${status}`,
   null, {
    baseURL: baseUrlApi
   }),
}

四、接口請求的使用

import loginApi from "@/service/login-service";
 methods: {
//-登錄
  clickLoginBtn() {
   var data = {
    phone: '18709090909',
    password: "123456",
   };
   console.log("登錄參數(shù)==", data);
   loginApi.wxLogin(data).then(
    data => {
     if (!data) {
      this.$toast(data.msg);
      return;
     }
     if (data.code==0) {
      console.log("登錄成功", data);  
     }
    },
    err => {
    }
   );
  },
  //-收藏
  collect() {
   let isCollect = "1"; //1收藏 0取消
   let goodId = "4343434";
   loginApi.addCollect(goodsId, isCollect).then(data => {
    if (data.code != 0) {
     console.log("收藏失敗", data);
     return;
    }
    if (isCollect == 1) {
     this.$toast("取消成功");
    } else {
     this.$toast("收藏成功");
    }
   });
  }
 }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS生成隨機(jī)數(shù)的多種方法匯總(不同范圍、類型的隨機(jī)數(shù))

    JS生成隨機(jī)數(shù)的多種方法匯總(不同范圍、類型的隨機(jī)數(shù))

    js產(chǎn)生隨機(jī)數(shù)通常是使用javascript的Math.random()函數(shù),下面這篇文章主要給大家介紹了關(guān)于JS生成隨機(jī)數(shù)的多種方法(不同范圍、類型的隨機(jī)數(shù))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • js精確的加減乘除實(shí)例

    js精確的加減乘除實(shí)例

    下面小編就為大家?guī)硪黄猨s精確的加減乘除實(shí)例,具有非常好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Echarts地圖實(shí)例詳解(地圖樣式、合并地圖、增加地圖)

    Echarts地圖實(shí)例詳解(地圖樣式、合并地圖、增加地圖)

    ECharts是一個使用JavaScript實(shí)現(xiàn)的開源可視化庫,涵蓋各行業(yè)圖表,滿足各種需求,下面這篇文章主要給大家介紹了關(guān)于Echarts地圖的相關(guān)資料,包括地圖樣式、合并地圖、增加地圖,需要的朋友可以參考下
    2022-06-06
  • js實(shí)現(xiàn)表格單列按字母排序

    js實(shí)現(xiàn)表格單列按字母排序

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)表格單列按字母排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 微信小程序?qū)崿F(xiàn)計算器案例

    微信小程序?qū)崿F(xiàn)計算器案例

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)計算器案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Fixie.js 自動填充內(nèi)容的插件

    Fixie.js 自動填充內(nèi)容的插件

    Fixie.js 自動填充內(nèi)容的插件,需要的朋友可以參考下
    2012-06-06
  • 詳解用js代碼觸發(fā)dom事件的實(shí)現(xiàn)方案

    詳解用js代碼觸發(fā)dom事件的實(shí)現(xiàn)方案

    這篇文章主要介紹了詳解用js代碼觸發(fā)dom事件的實(shí)現(xiàn)方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 淺談javascript事件環(huán)微任務(wù)和宏任務(wù)隊列原理

    淺談javascript事件環(huán)微任務(wù)和宏任務(wù)隊列原理

    這篇文章主要介紹了javascript事件環(huán) 微任務(wù)和宏任務(wù)隊列原理,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • JavaScript實(shí)現(xiàn)的簡單煙花特效代碼

    JavaScript實(shí)現(xiàn)的簡單煙花特效代碼

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的簡單煙花特效代碼,涉及JavaScript數(shù)學(xué)運(yùn)算及頁面元素基于定時函數(shù)運(yùn)動的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 詳解js數(shù)組的完全隨機(jī)排列算法

    詳解js數(shù)組的完全隨機(jī)排列算法

    本文主要對常見的完全錯誤的隨機(jī)排列算法進(jìn)行介紹分析,并介紹了經(jīng)典的隨機(jī)排列算法,具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12

最新評論

永安市| 西林县| 佛教| 左贡县| 孟村| 区。| 富平县| 噶尔县| 商城县| 航空| 常德市| 襄樊市| 重庆市| 淳安县| 雷州市| 思南县| 荔浦县| 荥经县| 梧州市| 阳信县| 漳平市| 屏山县| 克东县| 云林县| 株洲市| 西宁市| 绥棱县| 梧州市| 万全县| 巴里| 东宁县| 绥化市| 太仆寺旗| 盐城市| 闸北区| 漳州市| 南陵县| 庆云县| 九寨沟县| 灵寿县| 藁城市|