Javascript 如何在Deno中将arrayBuffer转换为Uint8Array?
我正在使用FetchAPI下载Deno中的图像。在Response对象上,我调用arrayBuffer()方法,以获取响应的最终数据:Javascript 如何在Deno中将arrayBuffer转换为Uint8Array?,javascript,deno,Javascript,Deno,我正在使用FetchAPI下载Deno中的图像。在Response对象上,我调用arrayBuffer()方法,以获取响应的最终数据: const response = await fetch('https://www.example.com/someimage.jpg') const data = await response.arrayBuffer();//This returns an arrayBuffer. 然后我想将这些数据写入一个文件,就像您在Node中所做的那样: await
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,但我不知道如何从从获取响应接收的arrayBuffer构造这个数组
如何做到这一点?您必须将
不能直接操作ArrayBuffer的内容;
相反,您可以创建一个类型化数组对象或以特定格式表示缓冲区的DataView对象,并使用该对象读取和写入缓冲区的内容
新的Uint8Array(arrayBuffer);
嗯。。。根据文档(),您只需执行以下操作:
//const data=wait response.arrayBuffer();
常量数据=新数组缓冲区(2);//嘲弄
const convertedData=新的UINT8阵列(数据);
console.log(convertedData)代码>是的,我在另一篇文章中看到了这一点,并意识到这与Deno无关,只是普通的JS:DExactly,这只是普通的JS:)。如果你想流式传输到文件,而不是缓冲,请在这里查看我的答案:
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))