如何在rxjs中命名forkJoin?

时间:2017-11-07 23:44:50

标签: angular rxjs

如何在rxjs中为forkJoin的每个observable命名空间

例如

Observable.forkJoin([observable1, observable2])

就像

// This does not work
Observable.forkJoin({'1': observable1, '2': observable2})

2 个答案:

答案 0 :(得分:0)

来自forkJoin - learn-rxjs

  

签名:forkJoin(... args,selector:function):Observable

所以选择器可以添加其他信息

const selector = (x, y) => {
  return { '1': x, '2': y };
}

Observable.forkJoin([observable1, observable2], selector)

答案 1 :(得分:0)

如果你想要更多的“Rx”方法,你可以使用这样的东西:

/style.css

打印哪些:

const sources = {
    'a': Observable.of(1),
    'b': Observable.of(42),
    'c': Observable.of(3),
};

const keys = Object.keys(sources);

Observable.forkJoin(Object.values(sources))
    .mergeMap(results => Observable.zip(keys, Observable.from(results)))
    .toArray()
    .map(pairs => pairs.reduce((object, pair) => {
        object[pair[0]] = pair[1];
        return object;
    }, {}))
    .subscribe(console.log);

查看现场演示:http://jsbin.com/xijonem/7/edit?js,console