使用flatMap将数组转换为项目序列

时间:2017-07-01 14:01:33

标签: rxjs reactive-programming reactivex

在RxJS中,我希望将我在某个时刻拥有的数组转换为数组中的一系列项目。我找到了两种方法:选项1& 2,我猜,做同样的事情:

const obj = { array: [1, 2, 3, 4, 5] };

const observable = Observable.of(obj);

// Option 1
observable.flatMap(x => {
  return Observable.from(x.array);
}).subscribe(console.log);

// Option 2
observable.flatMap(x => x.array).subscribe(console.log);

// Option 3 ?

是否有更好/更好的方式表达我正在做的事情,我的意思是没有flatMap运算符?

1 个答案:

答案 0 :(得分:7)

我认为你已经达到了最短的路程。我可能建议的唯一改进是完全避免使用回调函数:

const obj = { array: [1, 2, 3, 4, 5] };
const observable = Observable.of(obj);

observable
  .pluck('array')
  .concatAll() // or mergeAll()
  .subscribe(console.log);

查看现场演示:https://jsbin.com/zosonil/edit?js,console