import { Component } from '@angular/core';
import { Observable, interval } from 'rxjs';
import { map, take } from 'rxjs/operators';
@Component({
selector: 'app-hero-message',
template: `
‹h2›Async Hero Message and AsyncPipe‹/h2›
‹p›Message: {{ message$ | async }}‹/p›
‹button (click)="resend()"›Resend‹/button›`,
})
export class HeroAsyncMessageComponent {
message$: Observable‹string>;
private messages = [
'You are my hero!',
'You are the best hero!',
'Will you be my hero?'
];
constructor() { this.resend(); }
resend() {
this.message$ = interval(500).pipe(
map(i => this.messages[i]),
take(this.messages.length)
);
}
}