The Window 操作符类似于 Buffer,但将项目收集到单独的 Observables 中,而不是在重新发出它们之前收集到数据结构中。
RxCpp 实现 Buffer 的两种变体
buffer(count)
buffer(count, skip)
在 RxGroovy 中,Buffer 有几种变体
buffer(count)
buffer(count, skip)
buffer(bufferClosingSelector)
buffer(boundary
[, initialCapacity
])
buffer(bufferOpenings, bufferClosingSelector)
buffer(timespan, unit
[, scheduler
])
buffer(timespan, unit, count
[, scheduler
])
buffer(timespan, timeshift, unit
[, scheduler
])
您可以使用 Buffer 操作符来实现背压(即,处理可能以其观察者无法消耗的速度发出项目的 Observable)。
在 RxJava 中,Buffer 有几种变体
buffer(count)
buffer(count, skip)
buffer(bufferClosingSelector)
buffer(boundary)
buffer(bufferOpenings, bufferClosingSelector)
buffer(timespan, unit
[, scheduler
])
buffer(timespan, unit, count
[, scheduler
])
buffer(timespan, timeshift, unit
[, scheduler
])
您可以使用 Buffer 操作符来实现背压(即,处理可能以其观察者无法消耗的速度发出项目的 Observable)。
RxJS 有四个 Buffer 操作符 — buffer
、bufferWithCount
、bufferWithTime
和 bufferWithTimeOrCount
— 每个操作符都有变体,这些变体在控制哪些源 Observable 项目作为哪些缓冲区的一部分发出方面有不同的方式。
buffer(bufferBoundaries)
buffer(bufferClosingSelector)
buffer(bufferOpenings,bufferClosingSelector)
buffer
在以下每个发行版中都可以找到
rx.all.js
rx.all.compat.js
rx.coincidence.js
buffer
需要以下发行版之一
rx.js
rx.compat.js
rx.lite.js
rx.lite.compat.js
bufferWithCount(count)
bufferWithCount(count, skip)
bufferWithCount
存在于以下每个发行版中:
rx.js
rx.compat.js
rx.all.js
rx.all.compat.js
rx.lite.extras.js
bufferWithTime(timeSpan)
bufferWithTime(timeSpan, timeShift)
bufferWithTimeOrCount(timeSpan, count)
bufferWithTime
和 bufferWithTimeOrCount
存在于以下每个发行版中:
rx.all.js
rx.all.compat.js
rx.time.js
bufferWithTime
和 bufferWithTimeOrCount
需要以下发行版之一:
rx.time.js
需要 rx.js
或 rx.compat.js
rx.lite.js
或 rx.lite.compat.js
在 RxKotlin 中,Buffer 有几个变体
buffer(count)
buffer(count, skip)
buffer(bufferClosingSelector)
buffer(boundary)
buffer(bufferOpenings, bufferClosingSelector)
buffer(timespan, unit
[, scheduler
])
buffer(timespan, unit, count
[, scheduler
])
buffer(timespan, timeshift, unit
[, scheduler
])
在 Rx.NET 中,Buffer 有几个变体。对于每种变体,您可以将源 Observable 作为第一个参数传入,也可以将其作为源 Observable 的实例方法调用(在这种情况下,您可以省略该参数)
Buffer(count)
Buffer(count, skip)
Buffer(bufferClosingSelector)
Buffer(bufferOpenings,bufferClosingSelector)
Buffer(timeSpan)
Buffer(timeSpan, count)
Buffer(timeSpan, timeShift)
RxPY 有几个 Buffer 变体:buffer
、buffer_with_count
、buffer_with_time
和 buffer_with_time_or_count
。对于这些变体中的每一个,都有可选参数来改变运算符的行为。与往常一样,在 RxPY 中,当运算符可能接受多个可选参数时,请确保在调用运算符时在参数列表中命名参数,以避免歧义。
buffer(buffer_openings)
buffer(closing_selector)
buffer_with_count(count)
buffer_with_count(count, skip)
buffer_with_time(timespan)
buffer_with_time(timespan, timeshift)
buffer_with_time_or_count(timespan, count)
Rx.rb 有三个 Buffer 运算符变体
buffer_with_count(count)
buffer_with_count(count,skip)
buffer_with_time(timespan)
RxScala 有两种 Buffer 变体——slidingBuffer
和 tumblingBuffer
——每种变体都有不同的变体,它们使用不同的方式来组装它们发出的缓冲区
slidingBuffer(count, skip)
slidingBuffer(timespan, timeshift)
slidingBuffer(openings, closings)
tumblingBuffer(count)
tumblingBuffer(boundary)
tumblingBuffer(timespan)
tumblingBuffer(timespan, count)