91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Axios怎么取消已發送的請求

發布時間:2021-02-07 10:31:55 來源:億速云 閱讀:276 作者:小新 欄目:web開發

這篇文章主要介紹Axios怎么取消已發送的請求,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Axios 介紹

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

Axios 使用 cancel token 取消請求

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

可以使用 CancelToken.source 工廠方法創建 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 參數是可選的)
source.cancel('Operation canceled by the user.');

2.還可以通過傳遞一個 executor 函數到 CancelToken 的構造函數來創建 cancel token:

var CancelToken = axios.CancelToken;
var cancel;

axios.get('/user/12345', {
 cancelToken: new CancelToken(function executor(c) {
  // executor 函數接收一個 cancel 函數作為參數
  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) { // 設置 cancel token
      that.source = c;
    })
  })
}

export xxx

具體的業務組件:

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() // 請求發送前調用
        this.page = val
        this.loadTable = true
        getLatenessDetail(this.params, (val - 1) * 10, this)
          .then(
            res => {
              this.loadTable = false
              this.tableData = res.data
            }
        )
    }
}

以上是“Axios怎么取消已發送的請求”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾阳市| 昆山市| 米林县| 岫岩| 南投市| 商南县| 安乡县| 右玉县| 嘉禾县| 商都县| 雷州市| 天津市| 鲁山县| 陆川县| 吉木乃县| 牙克石市| 樟树市| 虹口区| 乌拉特中旗| 封开县| 成武县| 石狮市| 休宁县| 东城区| 榕江县| 泰和县| 托克逊县| 略阳县| 南雄市| 佳木斯市| 达日县| 合肥市| 门头沟区| 公安县| 房产| 老河口市| 天镇县| 邵阳县| 南投市| 公主岭市| 安乡县|