下面是一个简单的 TypeScript 版本的封装 Axios 请求的例子,基于 Axios 0.21.1 版本:
在这个示例中,我们首先定义了一个通用的响应结构 ApiResponse,用来包装 API 返回的数据,包括状态码、数据和消息等信息。然后,我们创建了一个 Axios 实例,定义了请求和响应拦截器,以及封装了 GET、POST、PUT 和 DELETE 请求的函数。每个函数都使用了 Axios 实例发送请求,并处理了响应的通用结构,最后只返回了数据部分。
使用这些封装的函数,可以方便地发送请求,并处理通用响应结构。比如,我们可以这样使用
其中,我们可以在函数中指定返回的数据类型,例如 <User[]> 表示返回一个 User 类型的数组,或者 表示返回一个 User 类型的对象。
如何在封装的 Axios 请求中添加一些常用的功能
添加请求超时功能
在网络请求中,经常会遇到请求超时的情况,为了提高用户体验,我们可以添加请求超时的功能,当请求超过一定时间仍未返回时,自动取消请求并抛出异常。这可以通过设置 timeout 参数来实现,例如:
在这个示例中,我们为 GET 请求添加了一个超时时间为 10 秒的选项。当请求超过 10 秒仍未返回时,Axios 会自动取消请求,并抛出一个 Error 异常。我们可以在调用时捕获这个异常,以便进行错误处理。
添加请求重试功能
添加请求取消功能
添加请求缓存功能
Axios请求的优化的一些建议
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。