2015-02-11 58 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