加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Axios适配器实现哀求重试的处理赏罚步伐

发布时间:2021-05-28 15:28:35 所属栏目:教程 来源:互联网
导读:Axios 引入了适配器,使得它可以同时支持赏识器和 Node.js 情形。对付赏识器情形来说,它通过封装 XMLHttpRequest API 来发送 HTTP 哀求,而对付 Node.js 情形来

Axios 引入了适配器,使得它可以同时支持赏识器和 Node.js 情形。对付赏识器情形来说,它通过封装 XMLHttpRequest API 来发送 HTTP 哀求,而对付 Node.js 情形来说,它通过封装 Node.js 内置的 http 和 https 模块来发送 HTTP 哀求。

在 Axios 怎样缓存哀求数据? 这篇文章中,阿宝哥先容了怎样通过加强默认的 Axios 适配器,来实现缓存哀求数据的成果。同样,回收相同的思绪,我们也可以通过加强默认的 Axios 适配器来实现哀求重试的成果。

在先容怎样加强默认适配器之前,我们先来看一下 Axios 内置的 xhrAdapter 适配器,它被界说在 lib/adapters/xhr.js 文件中:

// lib/adapters/xhr.js 

module.exports = function xhrAdapter(config) { 

  return new Promise(function dispatchXhrRequest(resolve, reject) { 

    var requestData = config.data; 

    var requestHeaders = config.headers; 

 

    var request = new XMLHttpRequest(); 

    // 省略大部门代码 

    var fullPath = buildFullPath(config.baseURL, config.url); 

    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); 

    // Set the request timeout in MS 

    request.timeout = config.timeout; 

 

    // Listen for ready state 

    request.onreadystatechange = function handleLoad() { ... } 

 

    // Send the request 

    request.send(requestData); 

  }); 

}; 

很明明 xhrAdapter 适配器是一个函数工具,它吸取一个 config 参数并返回一个 Promise 工具。而在 xhrAdapter 适配器内部,最终会行使 XMLHttpRequest API 来发送 HTTP 哀求。为了实现哀求重试的成果,我们就可以思量通过高阶函数来加强 xhrAdapter适配器的成果。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读