git ssb

2+

cel / scuttlebot.io



Tree: 13691e1ee2bb8b8cec137e18d9f495648fba6793

Files: 13691e1ee2bb8b8cec137e18d9f495648fba6793 / tmpl / apis / pull-stream / pull-pushable.md

1141 bytesRaw

pull-pushable

A pull-stream with a pushable interface.

Use this when you really can't pull from your source. For example, often I like to have a "live" stream. This would read a series of data, first old data, but then stay open and read new data as it comes in.

In that case, the new data needs to be queued up while the old data is read, and also, the rate things are pushed into the queue doesn't affect the rate of reads.

If there is no realtime aspect to this stream, it's likely that you don't need pushable. Instead try just using pull.values(array).

Example

var Pushable = require('pull-pushable')
var pull     = require('pull-stream')
var p = Pushable()

pull(p, pull.drain(console.log))

p.push(1)
p.end()

Also, can provide a listener for when the stream is closed.

var Pushable = require('pull-pushable')
var pull     = require('pull-stream')
var p = Pushable(function (err) {
  console.log('stream closed!')
})

//read 3 times then abort.
pull(p, pull.take(3), pull.drain(console.log))

p.push(1)
p.push(2)
p.push(3)
p.push(4) //stream will be aborted before this is output

License

MIT

Built with git-ssb-web