next 是 Observable 用来交付数据用的方法,error 可以交付错误信息,就是去通知 Observer,哪里出了问题 .. complete 可以通知 Observer 已经没有可以交付的数据了 ..
在执行 Observable 的时候,error 还有 complete 这两种通知只能发生其中的一个 .. 不管发生哪个,都会中断执行 Observable,也就是它就不会再继续交付其它的数据给 Observer 了。这个数据流就被中断了 ..
我们可以再试一下 .. 在这个 observer.complete() 的上面,再用一下 observer.next() 交付一个 lemon ..
保存 .. 控制台会输出,苹果,橘子,还有一个柠檬,然后输出了一个完成信息 .. done! .. 这次把这个交付的柠檬放到 complete 的下面 .. 再保存一下 ..
在 Atom 编辑器里移动行有个快捷键 .. 记不住可以在命令面板里查一下 .. shfit + command + P .. 搜索 move line .. 这里有个 move line down,向下移动行 .. 显示的快捷键是 ctrl + command + down ..
用这个快捷键 .. 把交付柠檬的这行代码移动到 complete 的下面 ..
这回控制台只会输出一个苹果,橘子,还有一个完成信息 .. 没有输出这个完成交付之后的柠檬 .. 因为 complete ,会中断执行 Observable ..
同样,error 也会中断执行 Observable ..
在这个 complete 的上面,用一下 observer.error() . 新建一个 Error .. 设置一条错误信息 .. someone took my fruit.
然后在 fruitsObserver 这里,再添加一个 error 方法 .. 方法收到的是个错误 .. 可以用 error 来表示 .. 再把 error 里的 message 输出到控制台上 ..
保存 ..
这次 fruitsObservable 交付了一个苹果,一个橘子以后,遇到了一个错误 .. 这个 error 也会中断执行 Observable ..
在 Observable 交付了错误信息之后的 complete 还有用 next 交付的柠檬都不会在控制台上显示 ..
在 fruitsObserver 这里,我们设置了,收到了错误以后,把错误里的 message 里的东西输出到控制台上 ..
所以你会看到一条错误信息 ..