假设我有一个看起来像这样的observable(这是Python,但应该适用于所有语言):
batch_function([1,2,3,4,5])
batch_function([6,7,8,9,10])
我希望最终能够将Integers批处理为长度为5的列表,并能够将它们传递给函数,所以像这样:
batch_function
实际上,传入的数据将是(可能为空的)列表的无限流。我只是想确保在我累积5个实际值之前,我之后的{{1}}来电。谢谢你的帮助。
答案 0 :(得分:0)
以下代码段正在使用buffer_with_count
为我工作。我不确定是否有一种更简约的方法,即没有flat_map
。
BUFFER_COUNT=5
rx.Observable.from_iterable(iter(get_items())) \
.flat_map(lambda it: it) \
.buffer_with_count(BUFFER_COUNT) \
.map(lambda my_array: do_something_with(my_array)) \
.subscribe(lambda it: print(it))