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可读流,因此可以独立处理解码。

希望对您有所帮助!