Javascript 如何在Deno中将arrayBuffer转换为Uint8Array?

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

我正在使用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 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))