因此,我正在使用ngrx存储获取数据。一旦从商店中选择了我想要的属性,然后我就订阅了该属性以获得可观察的流。 我的数据包含对象数组。因此,在这个对象数组中,我必须对每个对象的某些属性进行一些修改。
为此,我使用rxjs库的'from()'运算符将对象数组转换为可观察的连续对象,然后将其分配给新的Observable对象。有了这个新的Observable对象,我应用了map函数进行修改,最后又返回了一个新的Observable对象。 直到这一步,一切都正常。 发生问题,当我订阅这个新的可修改可观察对象时,它顺序地发出值,而不是对象的整个数组。 但是我想要修改的对象数组。
this.statusObj = this.store.select(s => s.userStore.data);
this.statusObj.subscribe(rslt => {
this.usrArr = rslt;
})
this.newstatusObj = from(this.usrArr);
this.newstatusObj2 = this.newstatusObj
.pipe(map(() => {
//////some modifications
return
}))
this.newstatusObj2.subscribe(val => {
console.log(val); //this line is emitting sequential values..but i want array of objects
})
答案 0 :(得分:0)
您不需要使用.from()
,它会根据您的阵列将数据转换为多种发射。由于您的商店已经为您提供了一个可观察的数据,其中包含您要修改的数据,因此只需使用.map()
对其进行修改,如下所示:
this.store.select(s => s.userStore.data)
.pipe(map((rslt)=>{
//DO YOUR MODIFICATION HERE.
}))
.subscribe(val=>{
console.log(val) // now your data is in array of objects
})