Angular - изменить наблюдаемое значение

У меня есть функция в моем 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));
  }

Теперь он полностью пропускает функцию карты. Журналы "до" и "после" показывают один и тот же массив, а "внутренний журнал" не отображается.

1 ответ

Решение

Вместо подписки вы можете использовать карту:

immobili.map(
  imm => { 
    console.log(imm);
    imm.push(new Valutazione());
    console.log(imm);
    this.myImmobili = //some code here
  }
);
Другие вопросы по тегам