打字稿获取响应流

时间:2020-04-14 09:50:48

标签: node.js typescript stream fetch

我正在尝试发送响应。但是我希望能够在仍被发送时读取响应(并处理数据)。我基本上想在一个响应中发送多个消息。

它在node.js内部起作用,但是当我试图在打字稿中做同样的事情时,它不再起作用。

我的尝试是通过打字稿中的提取来执行请求,并且通过将响应的一部分写入响应流来响应来自node.js服务器。

fetch('...', {
    ...
}).then((response => {
    const reader = response.body.getReader();
    reader.read().then(({done, value}) => {
        if (done) {
            return response;
        }
            console.log(String.fromCharCode.apply(null, value)); //just for testing purposes
    })
}).then(...)... 

在Node.js方面,它基本上是这样的:

// doing stuff with the request
response.write(first_message)
// do some more stuff
response.write(second_message)
// do even more stuff
response.end(last_message)

在Node.js中,就像我说的那样,一旦它通过res.on('data',...)发送出去,我就可以读取每条消息,但是在typescript中的reader.read仅触发一次(?),是整个响应被发送的时间。

有没有办法让它像我想要的那样工作,还是我必须寻找另一种方式?

我希望这是可以理解的,我在写这篇文章时注意到我在解释这件事时非常努力:D

1 个答案:

答案 0 :(得分:0)

我发现了问题,并且像往常一样是坐在电脑前。

在写响应之前,我忘了先写一个头文件。