PublishSubject 不发出项目

PublishSubject does not emit items

为什么下面的代码没有发出任何结果?这个 Subject 出了什么问题?我希望在我订阅的那一刻会得到一个结果,即我声明的长度。

val subject = PublishSubject.create<String>()//PublishRelay.accept() does not work as well
subject.onNext("Alpha"
subject.onNext("Beta")
subject.onNext("Gamma")
subject.onComplete()
subject.map{ it.length }
        .subscribe { println(it) }

Publish Subject 仅在订阅后发布项目。 如果您希望所有订阅都获得所有发射,请尝试更改为 ReplaySubject,如果您想要订阅时最后一次发射,请尝试更改为 BehaviourSubject。

您可以在此处详细了解不同类型的主题:

http://reactivex.io/documentation/subject.html

val subject = ReplaySubject.create<String>()/
subject.onNext("Alpha"
subject.onNext("Beta")
subject.onNext("Gamma")
subject.onComplete()
subject.map{ it.length }
    .subscribe { println(it) }

或者,订阅,然后调用 onNext:

val subject = PublishSubject.create<String>()
subject.map{ it.length }
    .subscribe { println(it) }
subject.onNext("Alpha"
subject.onNext("Beta")
subject.onNext("Gamma")
subject.onComplete()