-
Notifications
You must be signed in to change notification settings - Fork 0
/
stream.js
47 lines (32 loc) · 987 Bytes
/
stream.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"use strict";
var EventEmitter=require("events").EventEmitter;
process.
function Resource(){
var emitter = new EventEmitter();
// on next tick of the event loop - like Swing.invokeLater
process.nextTick(function(){
emitter.emit("item", {prop: "val"});
});
return emitter;
}
var f = new Resource();
f.once("item", function(data){
console.log(data.prop);
})
// ReadableStream
var request = require("request");
var site = "http://www.pluralsight.com";
var s = request(site);
s.pipe(process.stdout); // pipe from ReadableStream to WriteableStream
var fs = request("fs");
s.pipe(fs.createWriteStream("somefile.html"));
var zlib = require("zlib");
request(site).pipe(zlib.createGzip()).pipe(fs.createWriteStream("zipped.gz"));
s.on("data", function(chunk){
console.log("chunk" + chunk);
});
s.on("end", function(){
console.log("end");
});
//writable stream
process.stdout.write("hello", "UTF-8", function(){console.log("done");});