4

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

1 回答 1

13

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

希望能帮助到你 !

于 2019-08-26T20:35:03.660 回答