RxSwift:compactMap从未执行

问题描述 投票:0回答:1

我正在尝试在compactMap上实现RxSwift,但似乎从未执行过。

这是我的代码:

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)
    }

当我更改主题的值时,compactMap永远不会被调用。

你们都知道为什么compactMap永远不会被呼叫吗?

非常感谢您的帮助。

rx-swift xcode11.2 ios13.2 swift5.2 behaviorrelay
1个回答
0
投票

此代码没有任何意义。您正在使用Observable<BehaviorRelay<Int>>运算符创建一个from,该运算符仅发出一个值(行为继电器本身),然后完成。

我认为您需要退后一步,弄清楚您要完成的任务,然后阅读操作员的文档,以找到满足您需要的方法。

© www.soinside.com 2019 - 2024. All rights reserved.