Я столкнулся с проблемой, когда асинхронная наблюдаемая, на мой взгляд, не отображает обновленные значения наблюдаемой.
Как я понял, вы должны иметь возможность выставлять последнее наблюдаемое значение в вашем представлении, просто используя асинхронный канал в шаблоне (например, <p>Hello, {{ name | async }}</p>
).В этом случае, однако, новое значение испускается за пределами мировоззрения Angular, что, похоже, заставляет Angular игнорировать обновленное значение, пока что-то еще не вызовет обновление представления.
Я также пытался подписаться на наблюдаемое в конструкторе моего компонента и вручную выставлять обновленные значения в качестве свойств компонента, но это тоже не сработало.
Вот мой случай минимального репо.
// Copyright 2019 Google LLC.
// SPDX-License-Identifier: Apache-2.0
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
@Component({
selector: 'my-app',
// Replace with your markup
template: `
{{ pumpObs | async }}
нажмите меня `, стили: [` h2 {font-weight: normal;} `]}) экспортный класс AppComponent {pumpObs = new Observable (наблюдатель => {наблюдатель.next (" Новая наблюдаемая "); // Предоставляем функцию для изменения значения наблюдаемой ( window) .pump = val =>{console.log (`pumpObs: $ {val}`); Наблюдатель.next (val);}; // Обработчик отмены подписки Noop return this.noop;});noop = () => {};}
Вы можете посмотреть живое демо на https://stackblitz.com/edit/angular-issue-repro2-dmkbhg