React 应用中的异步数据请求----fetch,以及fetch的优缺点

2023-05-16

React 应用中的异步数据请求----fetch

与Vue.js一样,React官方也没有提供服务器端接口异步请求方案;
可以使用第三方的axios模块,或者H5新增的原生技术:fetch(抓取)---- 有望取代XHR
使用fetch发起GET请求:

fetch(url)
	.then( res=>res.json() )//res就是完整的响应消息;res.body是流对象
	.then( data=>console.log(data) )
	.catch( err=>console.log(err) )

使用fetch发起POST请求:

fetch(url, {
	method: 'POST',//请求方法
	headers: { 'Content-Type': 'application/x-www-form-urlencoded' },//请求头
	body: 'k=v&k=v'//请求主体
})
	.then( res=>res.json() )
	.then( data=>console.log(data) )
	.catch( err=>console.log(err) )

fetch有望取代XHR请求,是在ES6出现的,使用了ES6中的promise对象,是基于promise设计的,其代码结果比ajax简单多了,参数有点想jQuery ajax
但是fetch不是ajax的进一步封装,而是原生的js,没有使用XMLHttpRequest对象

fetch的优缺点

优点:

①、语法简介,更加语义化
②、基于标准的promise实现,支持async/await
③、同构方便,使用isomorphic-fetch
④、更加底层,提供的API丰富
⑤、脱离了XHR,是ES规范里新的实现方式
⑥、其考虑到了传输的文件比较大的时候的处理

缺点

①、当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject,即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (如果响应的 HTTP 状态码不在 200 - 299 的范围内,则设置 resolve 返回值的 ok 属性为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。
②、fetch 不会发送跨域 cookies,需要添加配置项: fetch(url, {credentials: ‘include’})
③、fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费
④、fetch没有办法原生监测请求的进度,而XHR可以

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 应用中的异步数据请求----fetch,以及fetch的优缺点 的相关文章

  • vins-fusion代码理解

    代码通读了一遍做些总结 xff0c 肯定有很多理解错了的地方 xff0c 清晰起见详细程序都放到引用链接里 从rosNodeTest cpp开始 main函数 ros span class token operator span span
  • vins博客的一部分1

    文章目录 imu callbackimg callback imu callback 从话题中读入各个数据的t x y z g y r xff0c 存放到acc和gry中 span class token comment 从话题读入 spa
  • vins博客的一部分2

    sync process 对两个imgBuf里的图像进行双目时间匹配 xff08 通过判断双目图像时间之差 lt 3ms xff09 xff0c 扔掉匹配不到的老帧 span class token keyword double span
  • vins博客的一部分3

    FeatureTracker trackImage 包含了 xff1a 帧间光流法 区域mask 检测特征点 左右目光流法匹配 计算像素速度 画图 跟踪上一帧的特征点 如果已经有特征点 xff0c 就直接进行LK追踪 xff0c 新的特征点
  • vins博客的一部分4

    processMeasurements 取出数据 将 featureBuf中 xff0c 最早帧的feature取出 xff1a feature 61 featureBuf front 节点的接收IMU的消息再imu callback中被放
  • vins博客的一部分5

    目录 initFirstIMUPose xff08 xff09 processIMU propagate initFirstIMUPose xff08 xff09 得到IUM的Z与重力对齐的旋转矩阵 xff1a IMU开始很大可能不是水平放
  • vins博客的一部分6

    processImage 输入是本帧的特征点 id cam id xyz uv vxvy 包含了检测关键帧 估计外部参数 初始化 状态估计 划窗等等 检测关键帧 选择margin帧 addFeatureCheckParallax 检测和上一
  • vins博客的一部分7

    目录 initFramePoseByPnP frame count Ps Rs tic ric triangulate frame count Ps Rs tic ric initFramePoseByPnP frame count Ps
  • vins博客的一部分8

    目录 optimization slideWindow optimization 优化先验残差 重投影残差 预积分残差 xff08 即要拟合的目标是 xff0c 之前边缘化后的先验值 xff0c 前后帧之间的IMU的预积分值 xff0c 每
  • 以下为WindowsNT下32位 C++程序,请计算sizeof的值

    转帖地址 xff1a http hi baidu com hikeba blog item 68ad9f10a7dd8003213f2ecf html char str 61 34 hello 34 char p1 61 str int n
  • vins博客的一部分9

    目录 IMUFactor xff08 imu约束 xff09 ProjectionTwoFrameOneCamFactor xff08 视觉约束 xff09 marginalize 边缘化约束 IMUFactor xff08 imu约束 x
  • fiesta论文翻译和代码

    论文 体素信息结构 VIS Namemean符号position体素坐标posoccupancy占用概率occESDF到最近障碍物的欧几里得距离disClosest Obstacle Coordinate最近障碍物的体素坐标cocobser
  • ROS中四元数、欧拉角、旋转矩阵等格式转换

    未完 ROS接收到odometry格式消息 xff1a nav msgs span class token operator span Odometry pos msg 具有 xff1a pos msg span class token p
  • lio-sam中雅克比推导

    lio sam做的是scan map xff0c 点变到世界系下 xff0c 优化本帧在是世界系下的位姿 xff0c 和loam有所不同 符号 xff1a 本帧特征点云 xff08 相对机体系 xff09 P s c a
  • Xavier瑞泰载板烧录系统与CUDA环境安装

    实验室瑞泰载板的Xavier刷机过程 xff0c 不可用nvidia官方刷机方法 xff0c 以下部分基本和瑞泰教程类似 xff1a 下载文件 下载前 xff0c 需要注意版本对应关系 xff0c 这里安装L4T 32 4 3 和 JetP
  • xavier nx 安装realsense

    1 安装realsense viewer git clone https github com jetsonhacks installRealSenseSDK cd installRealSenseSDK sudo installLibre
  • 【草稿】已有ubuntu,安装win10遇到的问题记录

    磁盘分区 xff1a 把 home拆分一块安装win10 xff0c 需要在临时系统中分区 xff0c 不然已经挂载的磁盘会带锁 xff0c 没法拆分卷 xff1a 使用ubuntu启动盘启动系统 xff0c try Ubuntu with
  • 欧拉角顺序与转换

    更多转换见 xff1a 基于eigen实现 基于python实现 这里就记录下顺序 xff1a 运算是左乘 xff0c 下面方式记作Z Y X顺序 xff0c 先绕x轴roll 再绕y轴pitch 最后绕z轴yaw xff0c 即为RPY
  • ubuntu20.04 python pycharm使用cv_bridge的问题

    1 终端python运行下面会报错 xff1a from cv bridge boost cv bridge boost import getCvType ImportError lib libgdal so 26 undefined sy
  • demo:图像处理 matlab实现迭代法全局阈值分割和局部自适应阈值分割

    全局阈值分割 迭代法阈值获取方法 xff1a 1 xff09 选取一个的初始估计值T xff08 128 xff1b 2 xff09 用T分割图像 这样便会生成两组像素集合 xff1a G1由所有灰度值大于T的像素组成 xff0c 而G2由

随机推荐

  • Ubuntu 实用内核更新实录

    1 更新软件及内核源码 xff1a sudo apt get install gcc make libncurses5 dev openssl libssl dev sudo apt get install build essential
  • matlab工具箱下载权限受限:您的管理员限制了您对此mathworks产品的下载权限

    我也不知道我为啥安装的时候audio toolbox没安 xff0c 可能有的同学安装matlab时也没有全选所有组件 xff0c 后来用的时候发现下载不了 xff1a 在附加功能管理器中 xff0c MathWorks 工具箱和产品这一部
  • demo:用matlab app designer做一个简易app

    GUI xff08 guide xff09 的教程挺多 xff0c 但app designer是matlab后续版本中才添加的 xff0c 界面更友好但度娘资源比较少 1 点击新建 APP设计工具 xff0c 或者直接在命令行输入appde
  • matlab 数值计算课 二阶微分方程-龙格库塔方法 & ODE45

    详见mathworks 龙格库塔方法 写成矩阵 xff08 状态方程 xff09 的形式更简洁一点 xff08 其实这两种方法结果是一样的 xff0c 如果C是 1 0 0 的话 xff0c 就很明显了 xff09 例如 xff1a 求系统
  • 第一篇simulink电路仿真

    连接一个最基本的二阶RLC震荡电阻 元器件的位置如图 xff1a RLC和电流表电压表在Simscape Foundation Library Electrical下可以找到 xff0c 如图 xff1a 单纯利用这些基本电路元件连接运行会
  • 阿里云Linux系统图形化界面

    https help aliyun com knowledge detail 41227 html
  • source devel/setup.bash bash: devel/setup.bash: No such file or directory解决方法

    看到网上一些解决方法是进入 bashrc把source opt ros kinetic setup bash这句话去掉之类的 xff0c 真是感到欲哭无泪 把这句话去掉只是让这个错误不再显示而已 xff0c 根本不能解决问题 根据报错信息很
  • 基于LQR的倒立摆控制——python代码——dlqr步骤推导

    推荐一个自动控制小车开源项目 xff1a 本文结合老王自动驾驶控制算法第五讲的离散LQR进行学习复盘 Inverted Pendulum Control PythonRobotics documentation dlqr原理 xff08 老
  • 【OpenMV小车——第1.2篇】OpenMV主控板的简介与入门使用

    前言 xff1a 视觉小车最重要的是视觉功能 xff0c 其实现方式主要有 xff1a Opencv 43 外置计算机摄像头 需要计算机作为上位机 Stm32 43 OV7670 较难 xff0c 大师级 OpenMV摄像头 较简单 xff
  • Windows 配置 C/C++ 开发环境

    文章目录 1 安装 MinGW w641 1 下载1 2 解压到合适的目录下1 3 添加到环境变量1 4 测试是否安装成功 2 安装 CMake2 1 下载2 2 解压到合适的目录下2 3 添加到环境变量2 4 测试是否安装成功 3 编译运
  • I.MX6ULL的SPI通信

    简述 SPI是串行外设接口 xff08 Serial Peripheral Interface xff09 的缩写 xff0c 相比于I2C最高400bps的传输速度 xff0c SPI每秒可以传输的数据可以高达几十M甚至上百Mbit 1
  • 信号量与互斥量的区别

    信号量 xff1a 那是多线程同步用的 xff0c 一个线程完成了某一个动作就通过信号告诉别的线程 xff0c 别的线程再进行某些动作 互斥量 xff1a 这是多线程互斥用的 xff0c 比如说 xff0c 一个线程占用了某一个资源 xff
  • C语言常用转义字符表

    C语言常用转义字符表 转义字符 xff1a 转义字符分为一般转义字符 八进制转义字符 十六进制转义字符 一般转义字符 xff1a 背诵 0 n 八进制转义字符 xff1a 141 是合法的 xff0c 前导的0是不能写的 十六进制转义字符
  • 2018年App测试流程及要点梳理

    先说说 xff0c 为什么要给大家梳理App测试流程和要点呢 xff1f 主要是缘于有太多同学咨询相关App测试的问题 xff0c 回答的次数多了 xff0c 就不想打字了 xff0c 还不如这样全部帮你们整理好 xff0c 希望各位看到的
  • 毕业设计--球上自平衡机器人

    目录 前言 一 机器人原理分析 二 控制器设计 三 程序部分 四 硬件清单 五 电路设计 六 结构设计 七 总结与展望 总结 展望 2021 8 18更新 xff1a 看到评论区很多人对这个机器人比较感兴趣 xff0c 把之前挖好的坑填一下
  • ROS入门之CmakeList.txt详讲

    本文为进来学习的总结 xff0c 记录了学习CmakeList txt文档的各个步骤 xff0c 适合从零开始理解CmakeList txt xff0c 可能存在错误之处 xff0c 望批评指正 0 Cmake的起源 为什么有CmakeLi
  • 2 如何给Gazebo中的仿真机械臂添加一个力传感器?

    1 你得有一个仿真机械臂 简单地说你首先的拥有一个能够在Gazebo当中使用的机械臂的URDF文件 xff0c 必须要包含visual collision和inertial三大标签 出于个人习惯 xff0c 这里直接使用UR官方提供的UR5
  • C#学习之事件的本质

    在注册事件时 xff0c 使用EventHandler委托 xff1b 摘要 表示将用于处理不具有事件数据的事件的方法 参数 sender 事件源 e 不包含事件数据的对象 public delegate void EventHandler
  • ..\OBJ\USART.axf: Error: L6218E: Undefined symbol I2C_CheckEvent (referred from oled_i2c.o).

    OBJ USART axf Error L6218E Undefined symbol I2C CheckEvent referred from oled i2c o OBJ USART axf Error L6218E Undefined
  • React 应用中的异步数据请求----fetch,以及fetch的优缺点

    React 应用中的异步数据请求 fetch 与Vue js一样 xff0c React官方也没有提供服务器端接口异步请求方案 xff1b 可以使用第三方的axios模块 xff0c 或者H5新增的原生技术 xff1a fetch 抓取 有