Изменить значение bufferCount во время выполнения - PullRequest
0 голосов
/ 19 февраля 2019

Использование rxjs6

  // should be dynamic
  const bufferSize = 3

  interval(100)
    .pipe(bufferCount(bufferSize))
    .subscribe(x => console.log(x))

Я хочу изменить bufferSize во время выполнения без воссоздания потока.Есть идеи как это сделать?

1 Ответ

0 голосов
/ 20 февраля 2019

Я создал новый оператор для настройки bufferCount с Observable.Пример использования:

function testDynamicBuffer() {
  const source = interval(50)

  // initial buffer size is 4
  const bufferSource = new BehaviorSubject<number>(4)

  const bufferedSource = source
    .pipe(dynamicBufferCount(bufferSource))
    .subscribe(x => console.log(x))

  setTimeout(() => bufferSource.next(2), 1000)
  setTimeout(() => bufferSource.next(3), 1500)
  setTimeout(() => bufferSource.next(40), 1873)
  setTimeout(() => bufferSource.next(2), 4593)
  setTimeout(() => bufferSource.next(9), 8764)

  setTimeout(() => bufferedSource.unsubscribe(), 10764)
}

testDynamicBuffer()

https://github.com/kigorw/dynamicBufferCount

...