Angular - 修改可观察值

Angular - 修改可观察值

问题描述:

我在接收可观察值的组件angular中有一个函数。我需要修改observable内的对象,然后再次将其放回到observable中并返回。这是我的代码到目前为止:Angular - 修改可观察值

myImmobili = Observable<Valutazione[]>; 
newImmobile(immobili: Observable<Valutazione[]>) { 

    immobili.subscribe(
     imm => { 
     console.log(imm); 
     imm.push(new Valutazione()); 
     console.log(imm); 
     this.myImmobili = //some code here 
     } 
    ); 
    } 

任何人都可以给我一个提示吗?也许还有更好的方法来修改我的数组而不订阅它,但我找不到它。谢谢。

编辑

newImmobile() { 

    this.immobili.subscribe(i => console.log('before', i)); 
    this.immobili.map(imm => { 
     imm.push(new Valutazione()); 
     console.log('inside', imm); 
    } 
    ); 
    this.immobili.subscribe(i => console.log('after', i)); 
    } 

现在它完全跳过了地图功能。 “之前”和“之后”的日志显示相同的数组,并且“内部日志”不显示。

+0

你想改变整个对象或只需修改阵列的基于一些条件的值? –

+0

只有数组的值,正如我在subscribe()调用中所做的那样。我需要返回一个包含修改数组的Observable。 – esseara

+2

使用'map'运算符来更改值。 –

相反订阅您可以使用地图:

immobili.map(
    imm => { 
    console.log(imm); 
    imm.push(new Valutazione()); 
    console.log(imm); 
    this.myImmobili = //some code here 
    } 
); 
+0

我改变了我的代码,你和@Basavaraj Bhusani建议,但它完全跳过了地图操作符的执行。 – esseara

+1

您需要在最终点至少订阅一次。你不能只使用地图。它必须加上订阅。 –

+0

就是这样。谢谢。 – esseara