我正在学习KOA和 Node.JS 流。
我要做的是发送部分 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 和 Koa 0.10.0