如何在 Python 中检索 rx(反应)管道中的可观察集?
How to retrieve observable set in rx (reactive) pipe in Python?
我正在使用 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
函数成为 return 可观察对象,该对象是 return 类型的 _dataflow()
函数。如果我只使用 _dataflow()
而不是 ops.map(lambda file: self._dataflow())
它工作得很好,但是,我想使用一些条件,对于 files
中的任何 file
我会选择不同的函数,比如 _dataflow()
.如何解决这个问题?
如果我理解你的话,你在merge运算符中最接近的选择:
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。
我正在使用 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
函数成为 return 可观察对象,该对象是 return 类型的 _dataflow()
函数。如果我只使用 _dataflow()
而不是 ops.map(lambda file: self._dataflow())
它工作得很好,但是,我想使用一些条件,对于 files
中的任何 file
我会选择不同的函数,比如 _dataflow()
.如何解决这个问题?
如果我理解你的话,你在merge运算符中最接近的选择:
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。