поведение buffer_with_count отличается на интервале, наблюдаемом, чем на диапазоне, наблюдаемом. Почему?

Я пробую RxPy, и я не понимаю этого поведения для buffer_with_countоператора:

Сценарий 1: интервал, наблюдаемый

Этот работает так, как я ожидаю.

Нет Буфера

>>> Observable.interval(500).take(6).subscribe(print)
<rx.disposables.anonymousdisposable.AnonymousDisposable object at 0x104733d68>
>>> 0
1
2
3
4
5

С буфером (count=3)

>>> Observable.interval(500).take(6).buffer_with_count(3).subscribe(print)
<rx.disposables.anonymousdisposable.AnonymousDisposable object at 0x104789a20>
>>> [0, 1, 2]
[3, 4, 5]

Сценарий 2: Диапазон, наблюдаемый

Это одно не производит ожидаемый амортизированный выход

Нет Буфера

>>> Observable.range(0, 6).subscribe(print)
0
1
2
3
4
5
<rx.disposables.anonymousdisposable.AnonymousDisposable object at 0x1046ea160>

С буфером (count=3)

>>> Observable.range(0, 6).buffer_with_count(3).subscribe(print)
[1, 2]
[4, 5]
<rx.disposables.anonymousdisposable.AnonymousDisposable object at 0x1046ea710>

Что происходит во втором сценарии?

Большое спасибо!

1 ответ

  1. Возможно, была ошибка, которая с тех пор была исправлена, потому что я только что попробовал ваш второй сценарий, и он, кажется, работает так, как должен..

    >>> Observable.range(0, 6).buffer_with_count(3).subscribe(print)
    [0, 1, 2]
    [3, 4, 5]