2015-02-11 107 views

回答

4

事件聽者實際上只由RxJava提供的功能的一個子集,而這正是它試圖解決的問題:

但是,讓我們備份了幾步,這是比較容易理解的Observable是什麼,如果您將它與Iterator(推或拉)進行比較。

Iterator.next()相當於Observable.onNext() - 下一個項目/事件發生時 - 消耗它。

Iterator.hasNext()相當於Observable.onComplete() - 它允許發佈者通知訂閱者沒有更多要使用的事件(EventListener模型中缺少一件事)。

對於第三,Observable.onError()沒有等價的,因爲迭代器,當你試圖讓next()remove()你知道,你可能會得到NoSuchElementExceptionUnsupportedOperationExceptionIllegalStateException並且可以捕獲並處理任何人,​​因爲你同步進行。

對於發佈者來說,如果發生錯誤,沒有辦法通知監聽器/訂閱者然後崩潰。 onError()是最後缺失的部分,Observable可以對任何錯誤進行優雅處理。

總結一下,Reactive Java來修復長時間缺少事件模型的部分。通過提供這些缺失的部分以及提供函數式編程風格(支持map,flatmap,filter等),它有助於以自然可讀的方式編寫異步調用,從而減少編程風格勢在必行時所需的樣板代碼(例如嵌套 - 環路),並創建了callback-hell

+0

時,它是如何被複制的,非常感謝,你能建議一些站點來啓動Reactive Programming。 – Jeevanantham 2015-02-11 07:08:49

+0

@ jerith2我的答案中的前兩個鏈接將是一個好開始! – alfasin 2015-02-11 07:16:51