response.body.getReader 不是函数
response.body.getReader is not a function
我正在使用 fetch 调用网络 api。我想以流的形式读取响应,但是当我在 response.body 上调用 getReader() 时,出现错误:"TypeError: response.body.getReader is not a function".
const fetch = require("node-fetch");
let response = await fetch(url);
let reader = response.body.getReader();
fetch
的 javascript 实现与节点 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));
正文 returns 一个 Node 本地可读流,您可以使用方便命名的 read()
方法读取它。
您可以在 here 下找到更多关于差异的信息。更具体地说:
为方便起见,res.body
是一个Node.js
可读流,因此可以独立处理解码。
希望对您有所帮助!
我正在使用 fetch 调用网络 api。我想以流的形式读取响应,但是当我在 response.body 上调用 getReader() 时,出现错误:"TypeError: response.body.getReader is not a function".
const fetch = require("node-fetch");
let response = await fetch(url);
let reader = response.body.getReader();
fetch
的 javascript 实现与节点 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));
正文 returns 一个 Node 本地可读流,您可以使用方便命名的 read()
方法读取它。
您可以在 here 下找到更多关于差异的信息。更具体地说:
为方便起见,res.body
是一个Node.js
可读流,因此可以独立处理解码。
希望对您有所帮助!