2015-01-20 65 views
2

我已經在RxJS中看到過這個,但是我還沒有在RxJava中找到相應的東西。有沒有人有任何想法如何在java中設置這樣的東西?創建一個主題

RxJS Subject.create(observer, observable)

創建一個從指定觀察者和可觀察的受試者。

參數

觀察者(觀察):用於將消息發送到所述受試者的觀察者。

observable(Observable):用於訂閱從主題發送的消息的observable。

基本上這將是一個主題,通過它你可以發送數據給另一個觀察者,並有一個可以將數據發送回主題訂閱者的可觀察值。

我試圖複製在RxJava中看到的代碼this github issue post

回答

2

在RxJava中,我認爲最接近你可以訂閱通過Subject作爲觀察者的Observable。

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

也可以在RxJava中創建主題。您可以通過每種類型的工廠方法來創建它們。因此,舉例來說,如果你想創建一個AsyncSubject您可以使用:

Subject<String> subject = AsyncSubject.<String>create(); 

請參閱本文檔的不同類型的主體受支持:主題標題= AsyncSubject.create();如果您想將其返回給用戶,您當然可以將其下載到Observable,以便用戶不知道它實際上是一個Subject。

引用您的鏈接問題,您可以使用主題上的on *方法向其中提供數據,然後Observer可以使用它。

+1

感謝moidaschl的回覆。我知道如何創建主題,我只是想知道在上面提到的github問題帖子中可以做的設置。 (即有一個主題,你餵養的數據,這是餵給另一個obseravable,並有一個可觀察的主題作爲訂戶) – Trikke 2015-01-21 13:18:33