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.
Björn
b963b3396c
|
4 years ago | |
---|---|---|
.. | ||
node_modules | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
index.js | 4 years ago | |
package.json | 4 years ago |
README.md
parallel-transform
Transform stream 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
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
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