Угловое обнаружение интернета

//Tested with Angular 8.1 and rxjs 6.5.2
import { Observable, Observer, fromEvent, merge } from 'rxjs';
import { map } from 'rxjs/operators';

ngOnInit(){
	this.createOnline$().subscribe(isOnline => console.log(isOnline));
}

createOnline$() {
return merge<boolean>(
  fromEvent(window, 'offline').pipe(map(() => false)),
  fromEvent(window, 'online').pipe(map(() => true)),
  new Observable((sub: Observer<boolean>) => {
	sub.next(navigator.onLine);
	sub.complete();
  }));
}
ChernobylBob