Angular 将静态对象转换为可观察对象并进行连接
我有一个物体,需要把它和一个可观察的物体结合起来 该对象如下所示: obj1Angular 将静态对象转换为可观察对象并进行连接,angular,typescript,object,rxjs,observable,Angular,Typescript,Object,Rxjs,Observable,我有一个物体,需要把它和一个可观察的物体结合起来 该对象如下所示: obj1 let org1Obj = {"category": "1", "testkey": "testvalue"} observable的JSON.stringify结果如下所示: obj2 [{"id":"51XXgI1w77VerovThbUV","question":"Sdad"}, {"id":"FxjDsyLBGqtrBx1EHFyM","question":"exanoke"}] 然后,我有一个可观察的对
let org1Obj = {"category": "1", "testkey": "testvalue"}
observable的JSON.stringify结果如下所示:
obj2
[{"id":"51XXgI1w77VerovThbUV","question":"Sdad"},
{"id":"FxjDsyLBGqtrBx1EHFyM","question":"exanoke"}]
然后,我有一个可观察的对象来获取数据,我正在考虑使用forkJoin将两者结合起来,因此我得到以下结果:
{"category": "1",
"testkey": "testvalue",
"questions": [
{"name": "test1"},
{"name": "test"}
]
}
如何将org1Obj变成一个可观察对象,以便在其上使用forkJoin,以及如何将第二个可观察对象添加到“问题”:[可观察结果]?这在以下情况下是可能的:
const observable1 = Observable.of(obj1);
return Observable.forkJoin(observable1, observable2).map(([obj1, obj2]) => {
return Object.assign({}, obj1, { questions: obj2 }); // or so
});
更简单、更高效的方法是跳过forkJoin
并将可观察对象映射到结果对象:
return observable2.map(obj2 => {
return Object.assign({}, obj1, { questions: obj2 }); // or so
});
将一个值转换为发出单个值的可观测值?这看起来像是对可观测数据的误用。这可以通过简单的
map
实现。由于结果的值与原始对象不同,因此它们应该如何组合仍然不清楚。我需要转换它的原因是为了可以使用forkJoin,而forkJoin的原因是我需要等待,直到从第二个可观察对象获得所有数据。如果我尝试将它们组合在一起,那么在函数运行之前,第二个可观察对象的数据将不可用。因为静态对象已经可用,所以结果数据将在可观察map
中可用。可能返回对象。赋值({},obj1,{问题:obj2})代码>?可能吧,但不清楚问题的数据输入和输出是什么。我想这超出了主题的范围。我想最终的形状会是什么已经很清楚了。我明白你的意思,是的,我想这样更接近了,谢谢(虽然obj2看起来仍然不像预期的问题,可能数组应该被映射或什么的)啊,是的!