RxSwift单独的流

问题描述

修改-----------------------------------------

一个流。

let o = Observable.just(1).concatMap(someProcedure).debug()
let o1 = o.map { "\($0 * 2)" }
let o2 = o.map { "\($0)" }
let proc = [o1,o2]
        
Observable.from(proc).concatMap { $0 }
    .subscribe(onNext: { _ in
            
    }).disposed(by: disposeBag)

func someProcedure(_ value: Int) -> Observable<Int> {
    print("someProcedure!!")
        
    var result = 100
        
    // do something
       
    return Observable.just(result)
}

在这种情况下,“ someProcedure !!”打印两次。

我只想在两个流(o1,o2)中使用func'someProcedure'的返回值

func'someProcedure'不需要执行两次。

有可能吗?

解决方法

take(1)上使用o运算符仅向下游传递第一个发出的值

,

一个Observable,它将默认为每个订阅创建一个 new 作业。这就是为什么要打印两个过程的原因。

要解决此问题,您需要共享订阅...

childB