Blame view

node_modules/parallel-transform/README.md 1.39 KB
aaac7fed   liuqimichale   add
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
48
49
50
51
52
53
54
  # parallel-transform
  
  [Transform stream](http://nodejs.org/api/stream.html#stream_class_stream_transform_1) for Node.js that allows you to run your transforms
  in parallel without changing the order of the output.
  
  	npm install parallel-transform
  
  It is easy to use
  
  ``` js
  var transform = require('parallel-transform');
  
  var stream = transform(10, function(data, callback) { // 10 is the parallism level
  	setTimeout(function() {
  		callback(null, data);
  	}, Math.random() * 1000);
  });
  
  for (var i = 0; i < 10; i++) {
  	stream.write(''+i);
  }
  stream.end();
  
  stream.on('data', function(data) {
  	console.log(data); // prints 0,1,2,...
  });
  stream.on('end', function() {
  	console.log('stream has ended');
  });
  ```
  
  If you run the above example you'll notice that it runs in parallel
  (does not take ~1 second between each print) and that the order is preserved
  
  ## Stream options
  
  All transforms are Node 0.10 streams. Per default they are created with the options `{objectMode:true}`.
  If you want to use your own stream options pass them as the second parameter
  
  ``` js
  var stream = transform(10, {objectMode:false}, function(data, callback) {
  	// data is now a buffer
  	callback(null, data);
  });
  
  fs.createReadStream('filename').pipe(stream).pipe(process.stdout);
  ```
  
  ### Unordered
  Passing the option `{ordered:false}` will output the data as soon as it's processed by a transform, without waiting to respect the order.
  
  ## License
  
  MIT