switchAll 与 exhuast

对于新到的子数据流,switchAll 和 exhaust 采用的是完全相反的策略

switchAll: 喜新厌旧

只要上游吐出新的 子数据流,switchAll 会直接订阅“新的”并退订“旧的” 根据上一点,switchAll 产生的 Observable 只有在上游完结且当前子数据流也完结情况下才会完结

0a0b1a1b2a2b3a3b

0a3a3b

exhaust 从一而终

exhaust 会先耗尽当前的子数据流(current),之后等待并重新订阅 上游吐出的“新的”子数据流(next) 在 exhuast 订阅新的子数据流之前,上游可能已经吐出不止一个子数据流,但因为 current 未完结,因此这些数据流被忽略 0a0b1a1b2a2b3a3b 0a0b2a2b

It seems that your browser does not support canvas. What a pity :(