TypeScript

HTML

<script src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
<div id="app"></div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
  text-align: center;
}

TypeScript

const { Observable, Subject, ReplaySubject, from, of, range, forkJoin } = rxjs;

class Classe {
  
  public httpRequestUno():Observable<any>{
  	console.log("richiesta http 1");
    return new Observable<any>((observer) => {
        observer.next(1);
    });
	}

  public httpRequestDue():Observable<any>{
  	console.log("richiesta http 2");
      return new Observable<any>((observer) => {
          observer.next(2);
      });
  }

  public httpRequestTre():Observable<any>{
  	console.log("richiesta http 3");
      return new Observable<any>((observer) => {
          //observer.complete(); // if I add this line of code completed is raised.
          observer.next(3);
      });
  }
    
	constructor() {
  	console.log("costruttore...");
  	let fock = forkJoin(
    	this.httpRequestUno(),
      this.httpRequestDue(),
      this.httpRequestTre()
    ).subscribe((value) => {
    	console.log("vaue");
    	console.log(value);
    }, error=>{
    	console.log("errore");
    	console.log(error);
    }, completed =>{
    	console.log("Completato");
    });
  }
}

var istanza = new Classe();

document.querySelector("#app").innerHTML = istanza;