Я изучаю KOA и Node.JS потоки.KoaJS: как отправить частичные ответы?
То, что я пытаюсь сделать, это отправить частичный HTTP-ответ и через некоторое время отправить оставшуюся часть ответа.
app.get("/", function*(next) {
// TEST:
function delay(ms) {
return function(callback) {
setTimeout(callback, ms);
}
}
this.type = "text/plain";
var Readable = require("stream").Readable;
var stream = this.body = new Readable();
stream._read = function() {};
stream.push('First line.\n');
yield delay(2000);
stream.push('Last line.\n');
stream.push(null);
console.log("done");
});
Я ожидаю, что при загрузке страницы в браузере «Первая строка». сразу же отображается и через 2 секунды также «Вторая строка». Вместо этого кажется, что ответ отправляется в целом.
Что мне здесь не хватает?
В конце концов я делаю палочку для потока встроенных данных каротажа в долгоживущем соединении с браузером.
Узел 0.11.3 с Коа 0.10.0
Одно дополнение: лучше использовать 'nextTick' вместо' setTimeout'. Это делает множество различных потоковых модулей. – Artem
@UdoG У вас получилось? – Leonid