stream: Emit readable on ended streams via read(0)
cc: @mjijackson
This commit is contained in:
Родитель
eafa902632
Коммит
929e4d9c9a
|
@ -236,7 +236,7 @@ Readable.prototype.read = function(n) {
|
|||
// the 'readable' event and move on.
|
||||
if (n === 0 &&
|
||||
state.needReadable &&
|
||||
state.length >= state.highWaterMark) {
|
||||
(state.length >= state.highWaterMark || state.ended)) {
|
||||
emitReadable(this);
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -80,3 +80,27 @@ var Readable = require('stream').Readable;
|
|||
console.log('ok 2');
|
||||
});
|
||||
})();
|
||||
|
||||
(function third() {
|
||||
// Third test, not reading when the stream has not passed
|
||||
// the highWaterMark but *has* reached EOF.
|
||||
var r = new Readable({
|
||||
highWaterMark: 30
|
||||
});
|
||||
|
||||
// This triggers a 'readable' event, which is lost.
|
||||
r.push(new Buffer('blerg'));
|
||||
r.push(null);
|
||||
|
||||
var caughtReadable = false;
|
||||
setTimeout(function() {
|
||||
r.on('readable', function() {
|
||||
caughtReadable = true;
|
||||
});
|
||||
});
|
||||
|
||||
process.on('exit', function() {
|
||||
assert(caughtReadable);
|
||||
console.log('ok 3');
|
||||
});
|
||||
})();
|
||||
|
|
Загрузка…
Ссылка в новой задаче