javascript - 如何在 Deno 中将 arrayBuffer 转换为 Uint8Array?
问题描述
我正在使用 fetch api 在 Deno 中下载图像。在 Response 对象上,我正在调用 arrayBuffer() 方法,以获取响应的最终数据:
const response = await fetch('https://www.example.com/someimage.jpg')
const data = await response.arrayBuffer();//This returns an arrayBuffer.
然后我想把这些数据写入一个文件,就像你在 Node 中做的那样:
await Deno.writeFile('./someimage.jpg' ,data)
图像变成空的。文档说 Deno.writeFile 需要一个 Uint8Array,但我不知道如何从从 fetch 响应接收到的 arrayBuffer 构造它。
如何才能做到这一点?
解决方案
您必须将 传递ArrayBuffer
给Uint8Array
构造函数
您不能直接操作 ArrayBuffer 的内容;相反,您创建一个类型化的数组对象或 DataView 对象,它以特定格式表示缓冲区,并使用它来读取和写入缓冲区的内容。
new Uint8Array(arrayBuffer);
const response = await fetch('https://www.example.com/someimage.jpg')
const data = await response.arrayBuffer();//This returns an arrayBuffer.
await Deno.writeFile('./someimage.jpg' , new Uint8Array(data))
推荐阅读
- google-smart-home - chrome 开发工具检查设备连接到哪个端口以进行本地实现?
- prometheus - 如何计算不同计数器的总和
- powershell - 比较powershell中的2个哈希表和不同时的输出
- mongodb - MongoDB 没有使用正确的索引
- d3.js - d3.scaleTime 仅呈现 NaN
- javascript - 将 Passport.js 与 pub/private 键一起使用时出现未经授权的响应
- r - 使用 npplregbw(部分线性半参数回归)选择带宽时出现错误
- javascript - 如何设置只读选项以显示禁用?
- macos - 如何强制解压缩列表使用 unicode UTF-8
- google-classroom - Google Classroom API Python 列表课程作业