创建主题

时间:2015-01-20 20:58:29

标签: java android rx-java rxjs

我在RxJS中看到过这个,但我还没有在RxJava中找到它。有没有人知道如何在java中设置这样的东西?

RxJS Subject.create(observer, observable)

  

从指定的观察者和observable创建一个主题。

     

参数

     

observer(Observer):观察者用于向主题发送消息。

     

observable(Observable):用于订阅主题发送的消息的observable。

基本上,这将是一个主题,您可以通过该主题向另一个观察者发送数据,并有一个可观察的数据将数据发送回主体订阅者。

我正在尝试复制在RxJava中this github issue post处看到的代码。

2 个答案:

答案 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就可以使用它。