потоковая передача ответа на выборку - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь передать ответ. Но я хочу иметь возможность прочитать ответ (и работать с данными), пока он еще отправляется. Я в основном хочу отправить несколько сообщений в одном ответе.

Он работает внутри node.js, но когда я пытался сделать то же самое в машинописи, он больше не работает.

Я пытался выполнить запрос через fetch в машинописи и ответ приходит с сервера 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)

In Node.js, как я уже сказал, я могу просто прочитать каждое сообщение, как только оно отправлено через res.on ('data', ...), но read.read в машинописи срабатывает (?) Только один раз, и тогда все ответ отправлен.

Есть ли способ заставить его работать так, как я хочу, или я должен искать другой путь?

Надеюсь, это понятно, что я хочу сделать, я заметил, когда писал вот как я изо всех сил пытался объяснить это: D

1 Ответ

0 голосов
/ 16 апреля 2020

Я нашел проблему, и, как обычно, она находилась перед p c.

Я забыл написать заголовок, прежде чем писать ответ.

...