我正在使用 fetch 调用 web api。我想将响应作为流读取,但是当我在 response.body 上调用 getReader() 时出现错误:“TypeError:response.body.getReader 不是函数”。
const fetch = require("node-fetch");
let response = await fetch(url);
let reader = response.body.getReader();
我正在使用 fetch 调用 web api。我想将响应作为流读取,但是当我在 response.body 上调用 getReader() 时出现错误:“TypeError:response.body.getReader 不是函数”。
const fetch = require("node-fetch");
let response = await fetch(url);
let reader = response.body.getReader();
fetch
javascript 的实现和 node的实现是有区别的node-fetch
。
您可以尝试以下方法:
const fetch = require('node-fetch');
fetch(url)
.then(response => response.body)
.then(res => res.on('readable', () => {
let chunk;
while (null !== (chunk = res.read())) {
console.log(chunk.toString());
}
}))
.catch(err => console.log(err));
主体返回一个 Node 原生可读流,您可以使用方便命名的read()
方法读取它。
您可以在此处找到有关差异的更多信息。进一步来说:
为方便起见,res.body
是一个Node.js
可读流,因此可以独立处理解码。
希望能帮助到你 !