当前位置: 首页 > article >正文

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,这个可能读到的工作量会比较大,不清楚具体场景

}).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);
  })


http://www.kler.cn/news/10297.html

相关文章:

  • Linux ln 命令
  • 运行时内存数据区之程序计数器
  • 【Vite】对 CSS 处理
  • Excel技能之数据验证,总有一款适合你
  • BGP策略实验
  • RPC调用框架简单介绍
  • 心累,网站被盗刷 1.7T 流量
  • vue中的pinia使用和持久化 - 粘贴即用
  • Unity之获取游戏物体对象或组件的几个方法
  • JVM/GC/G1
  • SpringBoot与RabbitMQ 集成以及死信队列,TTL,延迟队列
  • 为什么要创建FAQ?这篇文章告诉你
  • vue3中的全局防抖节流指令
  • Vue学习——【第五弹】
  • 【权限维持】域控后门SSPHOOKDSRMSID万能钥匙
  • 能聊天、会学习,远不是GPT的终局
  • Android—IMS的InputReader
  • 单片机程序是如何运行起来
  • python+vue+ 疫情冷链追溯管理系统
  • 数字中国理念引领国企人力资源数字化转型与实践
  • 2.29、共享内存(2)
  • Springboot整合Quartz实现定时任务数据库动态配置
  • Python数据分析:轻松实现数据处理、分析和可视化的入门教程
  • 代码自动发布系统
  • qt - 隐式共享与d-pointer技术
  • Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(二)
  • ptuning v2 的 chatglm垂直领域训练记录
  • 银行数字化转型导师坚鹏:金融科技与数字化转型成功案例
  • 腾讯云服务器TencentOS系统安装宝塔Linux面板命令
  • 软件管理 基础配置(运维笔记)