由於我的誤解,這是一個反應式編程的概念性問題,我想。防止每個訂閱都運行一個Observable
我有一個Observable
發出一個網絡調用返回JSON,我filter()
,看管理標誌的JSON,然後在subscribe()
方法執行操作。
observable
.filter((json) -> { return json.isAdmin; })
.subscribe((json) -> { /* Do things for admin */ });
我也想這樣做,但是當用戶是不是管理員:
observable
.filter((json) -> { return !json.isAdmin; })
.subscribe((json) -> { /* Do things for non-admin */ });
我,如果我運行上面的兩個代碼塊現在意識到,網絡電話將是兩倍調用。
我知道我可以把一個if語句放在一個subscribe()
方法中,但我不確定這是否被動方式。
有沒有一種方法可以保持上述結構,但只能將運動中的觀察點設置爲一次 - 即,一個網絡電話不是兩個?
看起來好像我想以多種方式對Observable
的結果做出反應,而沒有使Observable多次運行。
謝謝。那好極了。我稍後會玩,但這看起來正是我所錯過的。除了我看到的大量初學者教程外,您是否有關於如何更好地學習RxJava等的建議? – newfivefour
@newfivefour我認爲你已經走上了正確的軌道,詢問這類問題。官方文檔非常好。 [此操作員頁面](http://reactivex.io/documentation/operators.html)非常棒,甚至有一個決策樹可以幫助您在不同情況下選擇合適的操作員。 [主體(http://reactivex.io/documentation/subject。html)(「熱門」observables)也是一個重要的概念,強烈推薦閱讀和使用。 – AndroidEx
謝謝。該頁面很有用。我必須在大理石圖上找到我的頭......再次感謝。 – newfivefour