我正在使用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())
,它可以正常工作,但是,我想使用一些条件,即对于file
中的任何files
,我都将选择类似_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。