axios 和fetch的取舍,以及比较
废话不多说,直接直捣黄龙:
区别
相同点
- 都是一种基于promise的异步解决方案。都可以解决回调地狱问题
不同点
-
axios是一个封装好的库,需要npm进行安装,fetch是es6新增的api
-
语法:
fetch(url, { method: 'GET', // other options: POST, PUT, DELETE, etc. headers: { 'Content-Type': 'application/json'}, body: JSON.stringify({}), })axios(url, { // configuration options }) -
处理json数据
-
fetch:需要两个then,要再第一个then里将响应体转成json格式,如下:
const url = "****"; fetch(url) .then(response => response.json()) .then(res=>console.log(res)); -
axios:只需要一个then
const url = "****";axios.get(url) .then(response => console.log(response.data));
-
-
当请求方法为post的时候,fetch需要把请求参数进行JSON.stringify()来转化参数
-
错误处理:
- fetch需要判断响应体里的status=200,或ok=true,其他状态需要手动处理
- axios可以额外捕捉404或者其他http错误
-
超时处理:
-
axios只需要再option选项里填写timeout属性,超出后自动在控制台抛出错误
-
fetch则需要AbortController接口来取消,如下
const url = "*****" const controller = new AbortController(); const signal = controller.signal; setTimeout(() => controller.abort(), 4000);fetch(url, {signal: signal}).then((response) => response.json()).then(console.log).catch((err) => {console.error(err.message);});
-
-
效率:由于Fetch和axios都是基于
promise的,因此它们不应该导致任何性能问题。这里比较的是他们的获取速度。经测试得知:fetch略快与axios
总结:
通过比较可以看出,对于较大型项目有大量http请求,需要良好的错误处理或http拦截的应用,Axios是一个更好的解决方案。在小型项目的情况下,只需要少量API调用,Fetch也是一个不错的解决方案。大多数浏览器和Node.js环境都支持Axios,而现在浏览器仅支持Fetch,所以使用H5或PC的项目使用Axios相对较好,使用App内嵌H5项目,依赖App壳子中的浏览器,尽量减少Fetch的使用,以达到最好的兼容性。
相关文章:
axios 和fetch的取舍,以及比较
废话不多说,直接直捣黄龙: 区别 相同点 都是一种基于promise的异步解决方案。都可以解决回调地狱问题 不同点 axios是一个封装好的库,需要npm进行安装,fetch是es6新增的api 语法: fetch(url, { method: GET, // o…...
K-Means(K-均值)聚类算法理论和实战
目录 K-Means 算法 K-Means 术语 K 值如何确定 K-Means 场景 美国总统大选摇争取摆选民 电商平台用户分层 给亚洲球队做聚类 编辑 其他场景 K-Means 工作流程 K-Means 开发流程 K-Means的底层代码实现 K-Means 的评价标准 K-Means 算法 对于 n 个样本点来说&am…...
Python-pyqt不同窗口数据传输【使用静态函数】
文章目录 前言程序1:caogao1.py输入数据界面程序2:caogao2.py接收数据界面 程序3 :将输入数据界面和接收数据界面组合成一个总界面讲解 总结 前言 在编写pyqt 页面时有时候需要不同页面进行数据传输。本文讲解静态函数方法。直接看示例。 程…...
百度垂类离线计算系统发展历程
作者 | 弘远君 导读 本文以百度垂类离线计算系统的演进方向为主线,详细描述搜索垂类离线计算系统发展过程中遇到的问题,以及对应的解决方案。架构演进过程中一直奉行“没有最好的架构,只有最合适的架构”的宗旨,面对不同阶段遇到的…...
ubuntu 安装 指定版本:nodejs
通过 PPA 安装指定或最新版本的 nodejs 那么就需要使用 nodesource 来安装指定版本的 nodejs 了。其需要下载一个脚本,运行此脚本会在 ubuntu 里添加一个 nodejs 源,然后用 apt 就可以下载指定的 nodejs 了。 PPA 的全称为 personal package archive 。要…...
16.CSS菜单悬停特效
效果 源码 <!DOCTYPE html> <html> <head> <title>Creative Menu Item Hover Effects</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body><section><…...
恒运资本:市盈率怎么算?
市盈率(P/E ratio)是判别一家公司股票价格合理性的一个重要目标,也是投资者评估公司股票投资价值的重要参阅目标。市盈率越高,表明相对于公司的收益来说,该公司的股票定价越高。市盈率越低,则表明该股票被低…...
Docker运维中常见错误以及解决方法汇总1
1.报错如下: Another app is currently holding the yum lock; waiting for it to exit... 另一个应用程序是:PackageKit 原因:另一个APP正在锁定yum,等待其退出! 解决:执行指令 rm -f /var/run/yum.pid 2.CentOS7设置静态的IP且可以上网...
Maven - 使用maven-release-plugin规范化版本发布
文章目录 Maven Release plugin – IntroductionMaven Release plugin – Plugin DocumentationMaven Release plugin – Usage实战案例 Maven Release plugin – Introduction Maven Release Plugin(Maven 发布插件)是一个用于帮助在Maven项目中执行版…...
2023.8.29 关于性能测试
目录 什么是性能测试? 性能测试常见术语及其性能测试衡量指标 并发 用户数 响应时间 事务 点击率 吞吐量 思考时间 资源利用率 性能测试分类 基准性能测试 负载性能测试 压力性能测试 可靠性性能测试 性能测试执行流程 什么是性能测试? 性…...
基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维)
基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维) 0 前言1 RBF思路2 1维RBF函数2.1 参数说明2.1.1 核函数选择2.1.2 作用半径2.1.3 多项式拟合2.1.4 误差项(光滑项) 3 2维RBF函数4 3维RBF函数 惯例声…...
flume拦截器
flume拦截器代码 1.依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…...
vue、elementui控制前一级选择后,后一级才会有数据
<el-form-item label"废物类型:"><el-select clearable v-model"queryForm.hswCateType" placeholder"请选择" change"industryCategoryChange" focus"industryCategoryFocus"><el-option v-for&…...
亲测influxdb安装为window后台服务
InfluxDB 安装 64bit:https://dl.influxdata.com/influxdb/releases/influxdb-1.7.4_windows_amd64.zip 解压安装包 修改配置文件 [meta]# Where the metadata/raft database is storeddir "D:/influxdb/meta"...[data]# The directory where the TSM…...
【LeetCode - 每日一题】823. 带因子的二叉树 (2023.08.29)
823. 带因子的二叉树 题意 元素都大于1,元素不重复。计数满足要求的二叉树(每个非叶结点的值应等于它的两个子结点的值的乘积)的数量。元素可以重复使用。 代码 自上而下动态规划。 所有元素大于1,所以不会有 自己自己自己 的…...
flutter 上传图片并裁剪
1.首先在pubspec.yaml文件中新增依赖pub.dev image_picker: ^0.8.75 image_cropper: ^4.0.1 2.在Android的AndroidManifest.xml文件里面添加权限 <activityandroid:name"com.yalantis.ucrop.UCropActivity"android:screenOrientation"portrait"andro…...
一台服务器上部署 Redis 伪集群
哈喽大家好,我是咸鱼 今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从) redis-trib.rb 是一个基于 Ruby 编写的脚本,其功能涵盖了创建、管…...
ealtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)
本文为大家介绍realtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10),下面和小编一起看看详细内容吧。 我们都使用电脑来听音乐、看电影或者进行其他操作,但是如果我们觉得电脑产生的音效不够立体,我们就会想要去Realtek来设置音…...
微信小程序 scroll-view 组件的 bindscroll 不触发不生效
使用微信小程序基础组件中的scroll-view,但是滑动的时候 bindscroll 一直不生效。 <view class"container log-list"><scroll-view scroll-y style"height:100%;white-space:nowrap;" scroll-into-view"{{toView}}" enable…...
datax 删除分区数据,再写入MySQL脚本
#! /bin/bashDATAX_HOME/opt/module/datax#1、判断参数是否传入 if [ $# -lt 1 ] thenecho "必须传入all/表名..."exit fi #2、判断日期是否传入 [ "$2" ] && datestr$2 || datestr$(date -d -1 day %F)#DataX导出路径不允许存在空文件,…...
手把手教你用复旦微FM7Z045芯片在线调试DDR:JTAG与QSPI模式切换避坑指南
复旦微FM7Z045芯片DDR调试实战:模式切换与JTAG连接深度解析 第一次拿到复旦微FM7Z045开发板时,许多工程师都会遇到一个令人困惑的问题——明明按照手册步骤操作,DDR调试却总是失败。这往往不是代码问题,而是模式选择不当导致的。本…...
嵌入式Linux下MT7601U无线网卡驱动移植与网络配置实战
1. 项目概述最近在做一个基于Linux 3.5内核的嵌入式项目,需要让开发板通过USB接口连接无线网络。手头正好有几个闲置的360随身WiFi,查了一下,它的核心芯片是联发科(MediaTek)的MT7601U,这是一款非常经典的U…...
告别FreeRTOS:在乐鑫ESP32-C3上为RT-Thread打上‘内核补丁’的完整指南
从FreeRTOS到RT-Thread:ESP32-C3内核替换的工程实践 在嵌入式开发领域,操作系统的选择往往决定了项目的技术栈和生态边界。对于习惯了ESP-IDF和FreeRTOS的开发者来说,RT-Thread以其模块化设计和丰富的中间件支持正成为颇具吸引力的替代方案。…...
超导量子比特控制技术:DRAG与神经网络优化
1. 超导量子比特控制技术概述在超导量子计算系统中,精确的量子态操控是实现高保真度量子门操作的基础。传统微波脉冲控制面临两大核心挑战:非绝热跃迁导致的能级泄漏和频率失谐引起的操作误差。DRAG(Derivative Removal by Adiabatic Gate&am…...
面试官:你知道的限流算法有哪些?
为什么要有限流 一般做接口限流主要是为了应对突发流量,避免突发流量拖垮服务。如下面一些场景就有可能发生突发流量 微博热搜 恶意刷单 恶意爬虫 促销活动 接口限流的算法有如下几种 固定窗口计数器算法 这是最简单的限流算法。它将时间划分为固定的周期(窗口),并在每个…...
vim入门配置教程
Vim 最简配置教程(新手直接抄) 1. 找到配置文件 Linux/Mac/WSL vim ~/.vimrcWindows 文件路径:C:\Users\用户名\_vimrc 2. 直接粘贴通用好用配置 " 基础设置 set number " 显示行号 set relativenumber " 相对行号 …...
模电数电不再怕:用甘晴void的三本笔记法,搞定HNU电路与电子学课堂测验与作业
模电数电不再怕:用甘晴void的三本笔记法,搞定HNU电路与电子学课堂测验与作业 电路与电子学这门课,对很多计算机专业的学生来说就像一座难以逾越的高山。模电的抽象概念、数电的逻辑设计,加上频繁的课堂测验和课后作业,…...
OpenISP 模块拆解 · 第7讲:去马赛克 (CFA)
OpenISP 模块拆解 第7讲:去马赛克 (CFA) 模块作用 CFA 插值也叫 demosaic,是把单通道 Bayer RAW 转成三通道 RGB 的关键模块。每个传感器像素只采集 R/G/B 之一,CFA 要为每个位置估计缺失的两个颜色通道。 openISP 实现 源码类名为 CFA(img,…...
【Perplexity词组搭配查询权威基准测试】:覆盖医学/法律/工程三大垂直领域,17项指标碾压传统n-gram方法(数据已通过ACL评审)
更多请点击: https://intelliparadigm.com 第一章:Perplexity词组搭配查询权威基准测试概览 Perplexity(困惑度)作为衡量语言模型预测能力的核心指标,其在词组搭配(collocation)查询任务中的表…...
半波整流电路:从原理到实践,掌握AC-DC转换基础
1. 项目概述:从交流到直流的第一步在电子电路的世界里,我们常常需要将交流电(AC)转换为直流电(DC),这个过程我们称之为“整流”。而半波整流电路,可以说是所有整流电路中最基础、最经…...
