- In this example we create a Custom Observable and subscribe to it.
Create a new Project in Angular
ng new ObservablesDemo
Change content of app.component.html as below :
This program prints the observale values in the console
Change the content of app.component.ts as below :
import { Component, OnInit, OnDestroy } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Observer } from 'rxjs/Observer'; import 'rxjs'; import { Subscription } from 'rxjs'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit, OnDestroy { title = 'ObservablesDemo'; customObsSubscription: Subscription; constructor(){ } ngOnInit(){ const myObservable = Observable.create((observer: Observer<string>) => { setTimeout(() => observer.next('first package'), 2000); setTimeout(() => observer.next('second package'), 4000); //setTimeout(() => observer.error('This does not work'), 5000); setTimeout(() => observer.complete(), 7000); setTimeout(() => observer.next('third package package'), 4000);//Third package never arrives }); this.customObsSubscription = myObservable.subscribe( (data: string) => {console.log('Data : '+data); }, (error: string) => {console.log('Error : '+error); }, () => {console.log('Completed'); } ); } ngOnDestroy(): void { this.customObsSubscription.unsubscribe(); } }
Now execute the project and check the console :