我在RxJS中看到过这个,但我还没有在RxJava中找到它。有没有人知道如何在java中设置这样的东西?
RxJS Subject.create(observer, observable)
从指定的观察者和observable创建一个主题。
参数
observer(Observer):观察者用于向主题发送消息。
observable(Observable):用于订阅主题发送的消息的observable。
基本上,这将是一个主题,您可以通过该主题向另一个观察者发送数据,并有一个可观察的数据将数据发送回主体订阅者。
我正在尝试复制在RxJava中this github issue post处看到的代码。
答案 0 :(得分:2)
在RxJava中,我认为最接近的是订阅Observable,将Subject作为Observer传递。
final Observable<Integer> observable = Observable.just(1, 2, 3, 4, 5);
final AsyncSubject<Integer> subject = AsyncSubject.create();
observable.subscribe(subject);
subject.subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
// TODO
}
});
答案 1 :(得分:-1)
也可以在RxJava中创建主题。您可以通过每种类型的工厂方法创建它们。因此,例如,如果要创建AsyncSubject,可以使用:
Subject<String> subject = AsyncSubject.<String>create();
有关支持的不同类型的主题,请参阅此文档:主题subject = AsyncSubject.create();如果你想将它返回给用户,你当然可以将它转发给Observable,这样用户就不会知道它实际上是一个主题。
引用您链接的问题,您可以使用主题上的on *方法将数据输入其中,然后Observer就可以使用它。