如何在Python中的rx(reactive)管道中检索可观察集



我使用rx从几个来源创建模拟加载。

rx.from_list(files).pipe(
ops.map(lambda file: self._dataflow()),
ops.subscribe_on(pool_scheduler)
).subscribe(on_next=lambda file: print(file),
on_error=print,
on_completed=lambda: print("PROCESS done!"))

我希望我的map函数返回作为_dataflow()函数返回类型的可观察对象。如果我只使用_dataflow()而不是ops.map(lambda file: self._dataflow()),它可以很好地工作,但是,我想使用一些条件,即对于files中的任何file,我都会选择不同的函数,如_dataflow()。如何解决此问题?

如果我很了解你,你在合并运算符中最接近的选择:

list=rx.from_list(["set1_file1","set1_file2","set2_file1","set2_file2"])
rx.merge(list.pipe(ops.filter(lambda x:"set1" in x),ops.map(lambda x:x+" from list1 printed")),list.pipe(ops.filter(lambda x:"set2" in x),ops.map(lambda x:x+" from list2 printed"))).subscribe(lambda x:print(x))

用所需的映射函数替换Lambda。

最新更新