You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
988 B
49 lines
988 B
#!/usr/bin/env node |
|
|
|
var stream = require("readable-stream"); |
|
|
|
var duplexer2 = require("./"); |
|
|
|
var writable = new stream.Writable({objectMode: true}), |
|
readable = new stream.Readable({objectMode: true}); |
|
|
|
writable._write = function _write(input, encoding, done) { |
|
if (readable.push(input)) { |
|
return done(); |
|
} else { |
|
readable.once("drain", done); |
|
} |
|
}; |
|
|
|
readable._read = function _read(n) { |
|
// no-op |
|
}; |
|
|
|
// simulate the readable thing closing after a bit |
|
writable.once("finish", function() { |
|
setTimeout(function() { |
|
readable.push(null); |
|
}, 500); |
|
}); |
|
|
|
var duplex = duplexer2(writable, readable); |
|
|
|
duplex.on("data", function(e) { |
|
console.log("got data", JSON.stringify(e)); |
|
}); |
|
|
|
duplex.on("finish", function() { |
|
console.log("got finish event"); |
|
}); |
|
|
|
duplex.on("end", function() { |
|
console.log("got end event"); |
|
}); |
|
|
|
duplex.write("oh, hi there", function() { |
|
console.log("finished writing"); |
|
}); |
|
|
|
duplex.end(function() { |
|
console.log("finished ending"); |
|
});
|
|
|