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

詳解Axios 如何取消已發(fā)送的請求

 更新時間:2018年10月20日 17:11:28   作者:從零開始的異世界  
這篇文章主要介紹了詳解Axios 如何取消已發(fā)送的請求,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

最近在項目中遇到一個問題,在連續(xù)發(fā)送同一請求時,如果第二次請求比第一次請求快,那么實際顯示的是第一次請求的數(shù)據(jù),這就會造成數(shù)據(jù)和我選擇的內(nèi)容不一致的問題。解決的方案:在后續(xù)發(fā)送請求時,判斷之前的請求是否完成(同一個接口),如果未完成則立即取消。然后在發(fā)送新的請求。

Axios 介紹

Axios是一個基于 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。

Axios 使用 cancel token 取消請求

Axios的 cancel token API 基于cancelable promises proposal,它還處于第一階段。

可以使用 CancelToken.source 工廠方法創(chuàng)建 cancel token,像這樣:

var CancelToken = axios.CancelToken;
var source = CancelToken.source();

axios.get('/user/12345', {
 cancelToken: source.token
}).catch(function(thrown) {
 if (axios.isCancel(thrown)) {
  console.log('Request canceled', thrown.message);
 } else {
  // 處理錯誤
 }
});

// 取消請求(message 參數(shù)是可選的)
source.cancel('Operation canceled by the user.');

2.還可以通過傳遞一個 executor 函數(shù)到 CancelToken 的構(gòu)造函數(shù)來創(chuàng)建 cancel token:

var CancelToken = axios.CancelToken;
var cancel;

axios.get('/user/12345', {
 cancelToken: new CancelToken(function executor(c) {
  // executor 函數(shù)接收一個 cancel 函數(shù)作為參數(shù)
  cancel = c;
 })
});

// 取消請求
cancel();

我自己在項目中用的是第二種方案:

提取所有的 api 進行封裝:

import request from '../utils/request' // 配置過的Axios 對象
import axios from 'axios' 

export function getLatenessDetailSize(params, that) { 
  return request({
    url: '/api/v1/behaviour/latenessDetailSize', 
    method: 'post',
    params: params,
    cancelToken: new axios.CancelToken(function executor(c) { // 設(shè)置 cancel token
      that.source = c;
    })
  })
}

export xxx

具體的業(yè)務(wù)組件:

import { getLatenessDetail } from "../api";
export default {
    data() {
      return {
        tableData: [],
        total: 0,
        page: 1,
        loadTable: false,
        params: { },
        source: null
      }
    },
    methods: {
      cancelQuest() {
        if (typeof this.source === 'function') {
          this.source('終止請求'); //取消請求
        }
      },
      getTableData(val) {
        this.cancelQuest() // 請求發(fā)送前調(diào)用
        this.page = val
        this.loadTable = true
        getLatenessDetail(this.params, (val - 1) * 10, this)
          .then(
            res => {
              this.loadTable = false
              this.tableData = res.data
            }
        )
    }
}

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

相關(guān)文章

  • Vue模板語法中數(shù)據(jù)綁定的實例代碼

    Vue模板語法中數(shù)據(jù)綁定的實例代碼

    這篇文章主要介紹了Vue模板語法中數(shù)據(jù)綁定的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • vue2單元測試環(huán)境搭建

    vue2單元測試環(huán)境搭建

    本篇文章給大家分享了vue2單元測試環(huán)境搭建的詳細步驟,對此有需要的朋友參考學(xué)習(xí)下。
    2018-05-05
  • Vue中的ref作用詳解(實現(xiàn)DOM的聯(lián)動操作)

    Vue中的ref作用詳解(實現(xiàn)DOM的聯(lián)動操作)

    這篇文章主要介紹了Vue中的ref作用詳解(實現(xiàn)DOM的聯(lián)動操作),需要的朋友可以參考下
    2017-08-08
  • vue3中ref獲取子組件的值代碼示例

    vue3中ref獲取子組件的值代碼示例

    這篇文章主要給大家介紹了關(guān)于vue3中ref獲取子組件值的相關(guān)資料,在Vue3中父組件獲取子組件的值可以通過使用'ref'和'$refs'來實現(xiàn),文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • vue監(jiān)聽頁面滾動到某個高度觸發(fā)事件流程

    vue監(jiān)聽頁面滾動到某個高度觸發(fā)事件流程

    這篇文章主要介紹了vue監(jiān)聽頁面滾動到某個高度觸發(fā)事件流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue窗口變化onresize詳解

    vue窗口變化onresize詳解

    這篇文章主要介紹了vue窗口變化onresize,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue實現(xiàn)一個炫酷的日歷組件

    vue實現(xiàn)一個炫酷的日歷組件

    公司業(yè)務(wù)新開了一個商家管理微信H5移動端項目,日歷控件是商家管理員查看通過日程來篩選獲取某日用戶的訂單等數(shù)據(jù)。下面小編給大家?guī)砹嘶趘ue實現(xiàn)一個炫酷的日歷組件,感興趣的朋友參考下吧
    2018-10-10
  • webstorm+vue初始化項目的方法

    webstorm+vue初始化項目的方法

    今天小編就為大家分享一篇webstorm+vue初始化項目的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Vue 2.0學(xué)習(xí)筆記之Vue中的computed屬性

    Vue 2.0學(xué)習(xí)筆記之Vue中的computed屬性

    本篇文章主要介紹了Vue 2.0學(xué)習(xí)筆記之Vue中的computed屬性,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Vue如何實現(xiàn)pptx在線預(yù)覽

    Vue如何實現(xiàn)pptx在線預(yù)覽

    通過PPTXjs插件,實現(xiàn)PPTX文件在線預(yù)覽,需下載PPTXjs,將其引入HTML頁面,并編寫相應(yīng)的HTML和JS代碼,如果是移動端還需調(diào)整div大小,這是一種便捷的前端PPTX轉(zhuǎn)HTML技術(shù),適合網(wǎng)頁展示使用
    2024-09-09

最新評論

吉木乃县| 岑溪市| 闽侯县| 偏关县| 娱乐| 湘潭市| 剑阁县| 荔波县| 镇雄县| 沙河市| 丰都县| 丰都县| 乾安县| 兰西县| 炉霍县| 桃源县| 龙山县| 阿拉善右旗| 蒙自县| 镇远县| 阿荣旗| 宁都县| 柳江县| 榆社县| 十堰市| 武强县| 涞源县| 陇南市| 台州市| 雅安市| 仪征市| 社旗县| 富民县| 富源县| 竹山县| 闵行区| 金溪县| 淮北市| 枣强县| 锦屏县| 烟台市|