在动手实现之前,我们先来简单介绍下combineLatest的作用。combineLatest可以将多个Observable进行合并,并将它们最新的值作为输出。它存在以下几个特点:
- combineLatest会等到所有的Observable都emit一次数据之后才开始emit数据
- 在收集完一次数据之后,任何一个Observable emit了数据,则会emit数据,并不会再次等待所有Observable再次emit数据。
- 如果在所有Observable都emit数据之前,某个Observable执行了complete,则combineLatest不会emit任何数据,直接complete
- combineLatest如果有n个Observbale,则emit的值是长度为n的数组
比如:
const ob1 = Rx.Observable.interval(1000).map(d => `ob1:${d}`).take(3);
const ob2 = Rx.Observable.interval(