hakkındadır. Akımlardaki örneklerin bu oldukça zarif bölümüne bakıyordum.Düğüm Okunabilir akış,
https://gist.github.com/joyrexus/10026630
şöyle okunabilir görünüyor için örnek: Beni gerçekten karıştırır neyi
var Readable = require('stream').Readable
var inherits = require('util').inherits
function Source(content, options) {
Readable.call(this, options)
this.content = content
}
inherits(Source, Readable)
Source.prototype._read = function (size) {
if (!this.content) this.push(null)
else {
this.push(this.content.slice(0, size))
this.content = this.content.slice(size)
}
}
var s = new Source("The quick brown fox jumps over the lazy dog.")
console.log(s.read(10).toString())
console.log(s.read(10).toString())
console.log(s.read(10).toString())
console.log(s.read(10).toString())
console.log(s.read(10).toString())
// The quick
// brown fox
// jumps over
// the lazy
// dog.
var q = new Source("How now brown cow?")
q.pipe(process.stdout);
akışlarının noktası bellekte aynı anda her şeyi tampon olmadığıdır Bazı asenkronizasyon sağlamak için'un yanı sıra, bir akışa ilişkin her şeyin olay döngüsünün aynı dönüşünde işlenmemesi için.
const writable = new stream.Writable({
write: function(chunk, encoding, cb){
console.log('data =>', String(chunk));
cb();
}
});
var readable = new stream.Readable({
read: function(size){
// what do I do with this? It's required to implement
}
});
readable.setEncoding('utf8');
readable.on('data', (chunk) => {
console.log('got %d bytes of data', chunk.length, String(chunk));
});
readable.pipe(writable);
readable.push('line1');
readable.push('line2');
readable.push('line3');
readable.push('line4');
Ama anlamadığım şey, okuma yöntemini okunabilirlikte nasıl uygulamalıdır?
Örnek olarak tamamen farklı bir şekilde okunacak gibi görünüyor, bu yüzden bir şey kapalı gibi görünüyor.
Verileri okunabilir bir akışla el ile nasıl okuyabilirim?