下面这个图讲的就是从Observable订阅消息, 并且在Observer里面处理它们:
Observable允许:
订阅/取消订阅它的数据流
发送下一个值给Observer
告诉Observer发生了错误以及错误的信息...错误处理
Observable是会发生错误的, 如果错误被发送到了Observer的话, 整个流就结束了.
但是做Reactive编程的话, 有一个原则: Reactive的程序应该很有弹性/韧性....错误处理的Operators:
error() 被Observable在Observer上调用
catch() 在subscriber里并且在oserver得到它(错误)之前拦截错误,
retry(n)...然后订阅者2, 取消了订阅, 随后subject推送值2, 只有订阅者1收到了.
后来订阅者3也订阅了subject, 然后subject推送了3, 订阅者1,3都收到了这个值....任何在输入observable传递来的错误都会立即发射到输出的observable, 也就是把整个流都杀死了 .