Как получить значение после завершения трубы? - PullRequest
0 голосов
/ 30 июня 2018

Например. Я хочу, чтобы Angular автоматически обновлял значение (используя наблюдаемый).

// in test.component.ts
ngOnInit(){
  let i = 0;
  this.test = new Observalble<any>((ob) => {
    setInterVal(() => {
      ob.next({
        i: i++,
      })
    },1000);
  });
}

<!-- in test.component.html -->
<p>{{ (test | async).i }}</p> <!-- not work -->
<p>{{ (test.i | async) }}</p> <!-- not work -->

1 Ответ

0 голосов
/ 30 июня 2018

Сначала вам нужно будет исправить свои орфографические ошибки: setInterVal должно быть setInterval (строчные буквы v), а Observalble должно быть Observable.

Затем вам нужно добавить нулевой безопасный оператор, поскольку асинхронный результат test начнется с неопределенного значения и приведет к ошибкам, если вы попытаетесь получить свойство i из неопределенного значения. При добавлении ? он будет пытаться прочитать i, только если test | async не равно нулю.

// in test.component.ts
ngOnInit(){
  let i = 0;
  this.test = new Observable<any>((ob) => {
    setInterval(() => {
      ob.next({
        i: i++,
      })
    },1000);
  });
}

<!-- in test.component.html -->
<p>{{ (test | async)?.i }}</p> <!-- not work -->

Вот демонстрация StackBlitz

...