rxjs处理和转换数字序列的问题

现有代码如下:

 const source = Observable.range(1, 5);
 source.subscribe(console.log);

执行结果为:
1
2
3
4
5

问题:

  1. 有什么操作符或者方法能把source中的结果转换成一个数组,即订阅后能够输出:
    [1, 2, 3, 4, 5]
  2. range方法的第一个参数是起始值,第二个参数是从起始值开始往后几个值,也就是说他只能往后,如果我要往前呢?我只想到一种办法:

    const start = 2017;
    const source = range(start - 10, 10);
    source.subscribe(console.log);

    对于问题2还有更好的方法吗?

阅读 1.6k
1 个回答

第一个可以利用 bufferCount 操作符。

    const source = Observable.range(1, 5).bufferCount(5);
    source.subscribe(console.log);

第二个没啥不好的,就不考虑了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进