如何在 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。