Files
Node.js-14-Cookbook/Chapter04/decoupling-io/backpressure/direct-write-with-backpressure.js
T
2017-07-31 11:33:31 +05:30

28 lines
497 B
JavaScript

'use strict'
const { Readable, Writable } = require('readable-stream')
var i = 20
const rs = Readable({
read: (size) => {
setImmediate(function () {
rs.push(i-- ? Buffer.alloc(size) : null)
})
}
})
const ws = Writable({
write: (chunk, enc, cb) => {
console.log(ws._writableState.length)
setTimeout(cb, 1)
}
})
rs.on('data', (chunk) => {
const writable = ws.write(chunk)
if (writable === false) {
rs.pause()
ws.once('drain', () => rs.resume())
}
})