1.0.0 • Published 7 years ago

pressure-stream v1.0.0

Weekly downloads
72
License
-
Repository
github
Last release
7 years ago

pressure-stream

call an async function for each data event into through stream. manage concurrency as back pressure.

var pressure = require('pressure-stream');
var split = require('split2');
var request = require('request');


var concurrency = 100  // never ever do more than 100 requests at a time.

process.stdin.pipe(split())
.pipe(pressure(function(data,cb){
  request(data,function(err,res,body){
    cb(err,body)
  });
},concurrency)).pipe(process.stdout);

API

pressure(fn,opts)

  • fn is the data handler it is always called with 2 arguments
    • fn(data,cb)
  • when you are done with the the handler call cb(err,data)
    • if err is passed back with cb "error" will be emitted on the stream
    • data passed back on this stream will be emited as data

options

  • concurrency
    • the maximum number of concurrent data handlers the stream will execute.
    • defaults to 10