// #docregion import { Component } from '@angular/core'; import { Observable, interval } from 'rxjs'; import { map, take } from 'rxjs/operators'; @Component({ selector: 'app-hero-message', template: `

Async Hero Message and AsyncPipe

Message: {{ message$ | async }}

`, }) export class HeroAsyncMessageComponent { message$: Observable; 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) ); } } // #enddocregion // Alternative message$ formula: // this.message$ = fromArray(this.messages).pipe( // map(message => timer(500), // map(() => message)), // concatAll() // );