将静态对象转换为Observable和forkjoin

时间:2017-11-14 19:09:57

标签: angular typescript object rxjs observable

我有一个对象,需要将它与一个observable结合起来。

该对象如下所示:

OBJ1

let org1Obj = {"category": "1", "testkey": "testvalue"}

使用observable的JSON.stringify的结果如下所示:

OBJ2

[{"id":"51XXgI1w77VerovThbUV","question":"Sdad"},
 {"id":"FxjDsyLBGqtrBx1EHFyM","question":"exanoke"}]

然后我有了一个可以获取数据的observable,我想用forkJoin来组合两者,所以我最终得到以下结果:

{"category": "1", 
 "testkey": "testvalue", 
 "questions": [
   {"name": "test1"},
   {"name": "test"}
 ]
}

如何将org1Obj变成一个observable,以便我可以在其上使用forkJoin,如何将第二个observable添加到&#34;问题&#34;:[来自observable 的结果]?< / p>

1 个答案:

答案 0 :(得分:3)

这可以通过以下方式实现:

const observable1 = Observable.of(obj1);
return Observable.forkJoin(observable1, observable2).map(([obj1, obj2]) => {
  return Object.assign({}, obj1, { questions: obj2 }); // or so
});

不那么复杂且性能更高的方法是跳过forkJoin并将一个observable映射到结果对象:

return observable2.map(obj2 => {
  return Object.assign({}, obj1, { questions: obj2 }); // or so
});