Наткнулся на забавное поведение при портирвании приложения с 0.10 ноды на 0.8. Есть такой код:
var http = require('http');
var req = http.request('http://www.google.com:80', function(res) {
setTimeout(function() {
res.pipe(process.stdout);
}, 0);
});
req.end();
Он работает в node 0.10.x, но не выводит ничего в версии 0.8.x. Чтобы это исправить нужно использовать
необязательные методы pause и resume:
var http = require('http');
var req = http.request('http://www.google.com:80', function(res) {
res.pause();
setTimeout(function() {
res.resume();
res.pipe(process.stdout);
}, 0);
});
req.end();
Вроде бы сам спросил — сам ответил, но мне остается непонятным — почему так происходит?