Я хочу напечатать вывод каждую 1 секунду, но я получаю ошибку ниже.Я думал, что метод чтения вызывается синхронно, но, похоже, это не так.Может кто-нибудь объяснить, как выполняется метод чтения и почему я получаю эту ошибку?
const {Readable} = require('stream');
var out = new Readable({
read(size){
console.log('read');
setTimeout(()=>{
console.log(this.k);
console.log('before push');
this.push(String.fromCharCode(this.k++)+'\n');
console.log('after push\n');
if(this.k>65){
this.push(null);
console.log('null\n');
}
},1000);
}
});
out.k = 65;
out.pipe(process.stdout);
И я получаю эту ошибку:
events.js:183
throw er; // Unhandled 'error' event
^
Error: stream.push() after EOF
at readableAddChunk (_stream_readable.js:240:30)
at Readable.push (_stream_readable.js:208:10)
at Timeout.setTimeout [as _onTimeout] (C:\Users\x90540\Node\index.js:106:14)
at ontimeout (timers.js:475:11)
at tryOnTimeout (timers.js:310:5)
at Timer.listOnTimeout (timers.js:270:5)