我正在尝试使用 fetch api 和可读流生成一个 excel 文件。我试图传递Uint8Array
我从中获取reader.read()
并从中创建一个缓冲区对象并将其传递给我的可写流,但是当我将数组传递给Buffer.from
我时出现错误
The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of Object
以下是我的代码的相关部分。
我正在使用node.js
&我在控制台中检查了typeof value
是Uint8Array
这里的页面是
const page = await browser.newPage(); //puppeter
let fn = `writeToStream_${Date.now()}`;
await page.exposeFunction(fn, async (body, done) => {
let buffer = Buffer.from(body);
await writeStream.write(buffer);
});
const fetchDataResp = await page.evaluate(async (fn, fetchUrl) => {
const fetchPromise = fetch(fetchUrl);
const stream = await fetchPromise;
let reader = stream.body.getReader();
const decoder = new TextDecoder();
while(true) {
const {done, value} = await reader.read();
if (done){
break;
}
await window[fn](value, false);
}
await window[fn]("", true);
},fn,fetchUrl);
传递 Uint8Array 的正确方法是什么?
谢谢。