0

我正在尝试实施compactMapRxSwift但似乎从未执行过。

这是我的代码:

class MyClass{

    var disposeBag = DisposeBag()
    let subject = BehaviorRelay(value: 1)

    func doSomething() {
        Observable.from(optional: subject).compactMap{  $0

        }.subscribe( onNext:{
            print($0)
        }).disposed(by: disposeBag)
        subject.accept(2)
        subject.accept(4)
        subject.accept(5)
        subject.accept(8)
    }
}

当我更改永远不会被调用subject的值时。compactMap为什么不?

4

1 回答 1

1

您正在使用仅发出一个值(行为中继本身)然后完成Observable<BehaviorRelay<Int>>的运算符创建一个。调用被忽略,因为没有订阅行为中继本身fromaccept

我认为您需要退后一步,弄清楚您要完成的工作,然后阅读有关操作员的文档以找到符合您需要的操作员。

于 2019-12-03T11:24:24.293 回答