这是我的位置:
const observer = (item) => {
  console.log(item);
}
Observable.from([1,2,3,4,5])
  .take(3)
  .*******
  .subscribe(observer);
我想要进入控制台的是:
5
4
3
要获得该输出,可以使用toArray和mergeMap,但是需要在take(3):之前将它们组成:
Rx.Observable.from([1, 2, 3, 4, 5])
  .toArray()
  .mergeMap(array => array.reverse())
  .take(3)
  .subscribe(value => console.log(value));<script src="https://unpkg.com/rxjs@5/bundles/Rx.min.js"></script>如果您有一个可观察对象在完成之前发出相对较少的值,则该方法会很好地工作。如果您有一个可观察的对象,它发出任意多个值,而您只希望后三个(以相反的顺序)reduce,则可以避免必须缓冲每个发出的值:
Rx.Observable.from([1, 2, 3, 4, 5])
  .reduce((acc, value) => {
    acc.unshift(value);
    if (acc.length > 3) {
      acc.pop();
    }
    return acc;
  }, [])
  .mergeAll()
  .subscribe(value => console.log(value));<script src="https://unpkg.com/rxjs@5/bundles/Rx.min.js"></script>| 归档时间: | 
 | 
| 查看次数: | 1140 次 | 
| 最近记录: |