Axios适配器实现哀求重试的处理赏罚步伐
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适配器的成果。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |