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

使用async await 封裝 axios的方法

 更新時間:2018年07月09日 10:30:49   作者:勇PAN高峰  
這篇文章主要介紹了使用async await 封裝 axios的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

es6 的promise 逐步解決了層層回調(diào)的問題,es8的async await讓異步變成了同步的寫法,在vue中,可以通過封裝axios,使得所有的請求都可以使用同步寫法,同時處理錯誤信息等,可以建一個api.js文件,全局創(chuàng)建api實例.

import axios from 'axios'
const qs = require('qs')
const api = {
 async get (url, data) {
  try {
   let res = await axios.get(url, {params: data})
   res = res.data
   return new Promise((resolve) => {
    if (res.code === 0) {
     resolve(res)
    } else {
     resolve(res)
    }
   })
  } catch (err) {
   alert('服務(wù)器出錯')
   console.log(err)
  }
 },
 async post (url, data) {
  try {
   let res = await axios.post(url, qs.stringify(data))
   res = res.data
   return new Promise((resolve, reject) => {
    if (res.code === 0) {
     resolve(res)
    } else {
     reject(res)
    }
   })
  } catch (err) {
   // return (e.message)
   alert('服務(wù)器出錯')
   console.log(err)
  }
 },
}
export { api }

上述代碼中,首先采用try,catch 捕獲請求的錯誤, 如果網(wǎng)絡(luò)狀態(tài)差,服務(wù)器錯誤等 ,然后在請求成功狀態(tài)中,亦可統(tǒng)一處理請求代碼,這個可以根據(jù)具體項目處理,上例表示code=0的時候為結(jié)果正確狀態(tài).

使用可以參考如下,以vue項目為例:

import { api } from 'common/js/api'

export default {
 data () {
  return {
   list: [],
  }
 },
 created () {
  this.getList()
 },
 methods: {
  async getList () {
   let {data} = await api.get('/ferring/test/list')
   console.log(data)
   this.list = data
  }
 },
}

有時候我們可能想比如錯誤處理能通過vue的一些組件比如toast這樣的彈出,但是這個api.js不是在項目中,那該如何用呢, 下面以vue項目為例簡述:

有些ui庫,比如element ui這種,已經(jīng)將toast這種做成了插件,可以直接用this示例打開彈窗

<template>
 <el-button type="text" @click="open">點擊打開 Message Box</el-button>
</template>

<script>
 export default {
  methods: {
   open() {
    this.$alert('這是一段內(nèi)容', '標題名稱', {
     confirmButtonText: '確定',
     callback: action => {
      this.$message({
       type: 'info',
       message: `action: ${ action }`
      });
     }
    });
   }
  }
 }
</script>

以上代碼摘自element Ui ,如果想全局處理,在api.js中,如何獲取vue的this示例呢,在main.js里面,可以將vue實例掛載在window對象上

/* eslint-disable no-new */
window.wm = new Vue({
 el: '#app',
 router,
 render: h => h(App),
})

那么回到剛剛的api.js ,則可以直接在resolve 或者catch的情況下,調(diào)用 window.wm.$alert,這樣就可以借用vue的插件形式調(diào)用彈窗組件了.

如果沒有這種用this調(diào)用的 彈窗組件,我們也可以寫一個放在app.vue下, 然后通過vuex全局控制,

那么可以在api.js中引入store

import store from '../store'

在catch 或者 resolve條件下

store.commit('showDialog',{true,'請求出錯'})

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

相關(guān)文章

  • JavaScript設(shè)置、獲取、清除單值和多值cookie的方法

    JavaScript設(shè)置、獲取、清除單值和多值cookie的方法

    cookie 是存儲于訪問者的計算機中的變量。每當同一臺計算機通過瀏覽器請求某個頁面時,就會發(fā)送這個 cookie。你可以使用 JavaScript 來創(chuàng)建和取回 cookie 的值,本文通過一段代碼給大家介紹js設(shè)置、獲取、清除單值和多值cookie的方法,需要的朋友一起學習吧
    2015-11-11
  • Omi v1.0.2發(fā)布正式支持傳遞javascript表達式

    Omi v1.0.2發(fā)布正式支持傳遞javascript表達式

    這篇文章主要介紹了Omi v1.0.2發(fā)布正式支持傳遞javascript表達式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • javascript最基本的函數(shù)匯總

    javascript最基本的函數(shù)匯總

    這篇文章主要給大家匯總介紹了javascript最基本的7個函數(shù),十分的實用,有需要的小伙伴可以參考下。
    2015-06-06
  • 基于javascript簡單實現(xiàn)對身份證校驗

    基于javascript簡單實現(xiàn)對身份證校驗

    這篇文章主要介紹了基于javascript簡單實現(xiàn)對身份證校驗的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 關(guān)于js注冊事件的常用方法

    關(guān)于js注冊事件的常用方法

    為了兼容各種瀏覽器,今天沒事特意復習了一下js原生事件特性,對其封裝一下。
    2013-04-04
  • 微信小程序訪問豆瓣電影api的實現(xiàn)方法

    微信小程序訪問豆瓣電影api的實現(xiàn)方法

    這篇文章主要介紹了微信小程序訪問豆瓣電影api的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • JS優(yōu)化冗余代碼的技巧分享

    JS優(yōu)化冗余代碼的技巧分享

    這篇文章主要為大家整理了18個JavaScript優(yōu)化冗余代碼的技巧,文中的示例代碼簡潔易懂,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-08-08
  • js實現(xiàn)圖片上傳并正常顯示

    js實現(xiàn)圖片上傳并正常顯示

    這篇文章主要介紹了js實現(xiàn)圖片上傳并正常顯示,我們經(jīng)常遇到上傳照片的情況,如何實現(xiàn)圖片上傳,本文為大家進行揭曉,感興趣的小伙伴們可以參考一下
    2015-12-12
  • javascript 關(guān)于賦值、淺拷貝、深拷貝的個人理解

    javascript 關(guān)于賦值、淺拷貝、深拷貝的個人理解

    關(guān)于賦值、淺拷貝、深拷貝,以前也思考良久,很多時候都以為記住了,但是,我太難了。今天我特地寫下筆記,希望可以完全掌握這個東西,也希望可以幫助到任何想對學習這個東西的同學
    2019-11-11
  • JS尾遞歸的實現(xiàn)方法及代碼優(yōu)化技巧

    JS尾遞歸的實現(xiàn)方法及代碼優(yōu)化技巧

    這篇文章主要介紹了JS尾遞歸的實現(xiàn)方法及代碼優(yōu)化技巧,結(jié)合實例形式分析了尾遞歸的原理、JS實現(xiàn)方法及優(yōu)化技巧,需要的朋友可以參考下
    2019-01-01

最新評論

阜阳市| 湖南省| 全椒县| 观塘区| 五原县| 乌拉特前旗| 石家庄市| 连云港市| 民权县| 连云港市| 罗江县| 蒙城县| 平利县| 枣阳市| 唐山市| 巫山县| 襄垣县| 保靖县| 张家川| 平果县| 喀喇| 犍为县| 阿拉善盟| 红原县| 大姚县| 镇沅| 泽库县| 惠来县| 澜沧| 青岛市| 新龙县| 济阳县| 余干县| 尤溪县| 皮山县| 都兰县| 澎湖县| 聂荣县| 天门市| 云霄县| 内丘县|