js读取fetch的返回值

这篇具有很好参考价值的文章主要介绍了js读取fetch的返回值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要注意,在ky里,400 500这种都是算catch error会走到的了。

有两种方式。

一种是硬解析,一种是使用ky,可以捕获到error异常,

error类型的:

(1)先捕获error,一般的话会有error.message , 但是这个message不一定能捕获的到东西;

(2)从网络中捕获到的error会有response,那么response.status应该就是http状态码,

此时进行打印,你会发现response的body是

readable stream,而且还locked:true,那么就是它只能被读取一次,

那么就clone一下,此外还要转换成arrayBuffer才可读

而且必须加上then才能拿到结果,因为即使转换成arrayBuffer也是一个promise

然后在then里 使用arrayBufferToString, 然后这时候是一个完全的字符串再 解析一下,这样就能读到文字的内容了

if (e?.response?.status == "404") {
	const res = e?.response
	let copyRes = res.clone().arrayBuffer()
	copyRes.then((res: any) => {
		const response = JSON.parse(arrayBufferToString(res))
		if (response.errorCode === aaaaaaa) {
		
			status: "aaaaaaaaa",
		
	}
})

还有一个方法

用bodyreader,这个可能读到的工作量会比较大,不清楚具体场景文章来源地址https://www.toymoban.com/news/detail-411620.html

}).then((response) => response.body)
        .then((body) => {
          console.log(body, '11111body')
          const reader =  body.getReader();
          reader.read().then(({ done, value }) => {
            if (done) { 
            console.log('done'); 
            } else { 
            console.log('value', value); 
            // 使用TextDecoder
        var enc = new TextDecoder("utf-8");
        var uint8_msg = new Uint8Array(value);
        console.log(enc.decode(uint8_msg), '11111');
      }
    })
      checkStatus(response);
  })

到了这里,关于js读取fetch的返回值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu换源 #终端遇到Failed to fetch https://…..时需要换源

    原因:无法访问国外源或当前源没有该资源 解决:换国内源         1.备份文件                         2.打开文件         3.换源         软件源镜像站有阿里、清华、华科大等 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 阿里巴巴开源镜像站,免费

    2024年02月04日
    浏览(32)
  • 优雅而高效的JavaScript——try...catch语句(js异常处理)

    😁博主:小猫娃来啦 😁文章核心: 优雅而高效的JavaScript——try…catch语句 异常处理软件开发中扮演着至关重要的角色。无论是前端还是后端开发,JavaScript作为一种常用的编程语言,异常处理对于保证程序的健壮性和可靠性至关重要。下面将详细阐述异常处理的重要性,并

    2024年02月04日
    浏览(42)
  • JS fetch()用法详解

    比较: fetch()使用 Promise ,不使用回调函数,因此大大简化了写法,写起来更简洁。 fetch()采用 模块化设计 ,API 分散在多个对象上(Response 对象、Request 对象、Headers 对象),更合理一些;相比之下,XMLHttpRequest 的 API 设计并不是很好,输入、输出、状态都在同一个接口管理,

    2023年04月08日
    浏览(31)
  • 解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)

    https://www.pythonthree.com/register-openai-chatgpt/ 前提:请确保你科学上网的小工具是开启的 !!! 登录openAI的个人账户 网址:https://platform.openai.com/; 进入右上角“Personal”,点击“view API keys” ,就可以进入到获取API keys的界面,keys的作用是为要引入chatGPT的应用软件提供一把开启GPT大

    2023年04月08日
    浏览(52)
  • Java实体类属性和数据库字段都是大写字母,为什么返回给前端会变成小写字母

    最近我在开发系统的过程中发现了一个问题,我数据库中数据表的字段名使用的全是大写字母,Java实体类中属性也都是大写字母,但是返回给前端的时候所有属性名却变成了小写的。 我查阅资料后解决了问题,因此记录下来,避免以后再次踩坑。 数据库字段的字段名是大写

    2024年02月14日
    浏览(51)
  • js fetch请求中断的几种方式

    这是官方标准手段,真正意义的阻止请求(不支持ie) 后端接口设置的两秒返回数据 默认结果: 解开定时器后: 通过promise,成功用resolve返回,失败用reject返回(浏览器上,请求依然会发出,并得到响应) 第一种方法: 运行结果: 第二种方法:

    2024年02月12日
    浏览(43)
  • 【前后端数据交互】原生JS的Fetch请求封装

    1.1 AJAX 概述 AJAX 是最早出现请求数据的方式,它不需要不需要刷新整个页面即可更新部分数据。 属于原生 JS 范畴 ,技术核心是 XMLHttpRequest 对象。 AJAX 请求过程:创建 XMLHttpRequest 对象、连接服务器、发送请求、接收响应数据 一般使用之前,我们都需要把它们封装使用,如下

    2024年02月15日
    浏览(36)
  • JS面试题之ajax、axios、fetch的区别

    AsynchronousJavascriptAndXML 异步JavaScript和XML 它是一种创建 交互式 网页应用的 网页开发技术 。 它是一种在 无需重新加载整个网页 的情况下,能够 更新部分网页 的技术。 通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。 这意味着可以在不重新加载整个网页

    2023年04月23日
    浏览(67)
  • 为什么普通路由器在转发IP数据报时,对于源地址和目的地址都是不改变的,而NAT路由器需要改变

    普通路由器在转发IP数据报时,对于源地址和目的地址都是不改变的 。这是因为路由器的主要任务是根据其路由表将数据包从一个网络接口转发到另一个网络接口。当数据包到达路由器时,路由器首先将其目的地址与路由表进行对比,如果目的地址在本地网络内,它会直接转

    2024年02月04日
    浏览(83)
  • 自学Python,需要注意哪些?

    在学习Python之前,你不要担心自己没基础或“脑子笨”,我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很多事情。在这个喧嚣的时代,很多技术或概念会不断兴起,我希望你能沉下心来去学习,不要急于求成,一步一个脚印。当你把某个技术学好、学精后

    2024年01月24日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包