1.0.1 • Published 5 years ago

callbag-buffer-until v1.0.1

Weekly downloads
105
License
MIT
Repository
github
Last release
5 years ago

callbag-buffer-until

Callbag operator that buffers any stream data until another stream (the notifier) emits a value. Once that the notifier emits a value, all buffered and future stream values and passed downstream.

API

bufferUntil(notifier, { size = 100 })

  • notifier (required): the callbag that notifies this operator to flush its buffer and and push items through. Items will be buffered until this callbag pushes its first item.
  • size (defaults to 100): the maxium number of items to buffer. The oldest items are dropped when the number of items is exceeded.

Example

import { forEach, fromEvent, interval, pipe } from 'callbag-basics'
import bufferUntil from 'callbag-buffer-until'

pipe(
  interval(1000),
  bufferUntil(interval(2500))
  forEach(value => {
    // This will receive every value from interval, but no value will be sent
    // for 2.5 seconds. The buffered values will be sent, in order, all at once, followed by
    // any future values at the regular interval.
  })
)

pipe(
  fromEvent(document, 'mousemove'),
  bufferUntil(interval(2000), { size: 10 })
  forEach(value => {
    // This will receive the last 10 items prior to the 2s (2000ms) interval stream being triggered,
    // at the 2s mark, followed by all events thereafter.
  })
)
1.0.1

5 years ago

1.0.0

6 years ago