title: Why the 'toPromise()' doesn't work for me when
body: <p>I explain my problem with the code example</p>
  
  <p>I have the following service:</p>
  
  <pre><code>@Injectable()
  export class PartidoProvider extends MyFirestoreProvider&lt;Partido&gt; {
  
   constructor(  public http: HttpClient,
                 public firestore: AngularFirestore) {      
      super('partidos', http, firestore);        
    }
  
   buscarPartido ( jugador1: Jugador, jugador2: Jugador ) : Observable&lt;Partido[]&gt; {
      let partidoGanaJugador1: Partido = new Partido();
      let partidoPierdeJugador1: Partido = new Partido();
  
      partidoGanaJugador1.jugadorGanador = jugador1.idDoc;
      partidoGanaJugador1.jugadorPerdedor = jugador2.idDoc;
  
      partidoPierdeJugador1.jugadorGanador = jugador2.idDoc;
      partidoPierdeJugador1.jugadorPerdedor = jugador1.idDoc;
  
      return Observable.zip(  this.get(partidoGanaJugador1), 
                          this.get(partidoPierdeJugador1), 
                          (listaGanados, listaPerdidos) =&gt; {                                  
                                return listaGanados.concat(listaPerdidos);
      });    
  }
  </code></pre>
  
  <p>From a component I need to invoke the service converted to a promise to later use await to wait for the data to return in order to manage the registration in another entity.</p>
  
  <p>Next I show the code of tests of the calls to the service:</p>
  
  <pre><code>  async enviarResultado(){
      let rival: Jugador;
      let jugador: Jugador = this.authProvider.jugador;
      let nombreRival: string;
      let partido: Partido;
     // Obtener partido del calendario para añadirle el resultado    
      nombreRival = this.myForm.controls['rival'].value;        
      rival = this.rivales.find( rival =&gt; rival.nombre == nombreRival);    
  
      // THIS WORKS
      const sample = val =&gt; Observable.of(val).delay(5000);
      const example = sample('First Example').toPromise().then(result =&gt; {
       console.log('From Promise:', result);
            });
  
      // THIS WORKS
      this.partidoProvider.buscarPartido(jugador, rival).subscribe(
        resultado =&gt; {
          console.log("El subscribe ha devuelto datos");
          console.log(resultado);          
        },
        error =&gt; {
          console.error("Se ha producido un error al intentar buscar el partido para modificar el resultado")
        }
    );
  
     // THIS DOESN'T WORK only 1 appears in the debug console (console.log ("1"))
     console.log("1"); 
     this.partidoProvider.buscarPartido(jugador, rival).toPromise()
     .then( lista =&gt; {
       console.log("2");
       console.log("Promesa entra");
       console.log("data:" + lista);                      
       if ( lista &amp;&amp; lista.length &gt; 0){
         partido = lista[0]
       }
     })
     .catch( error =&gt; {
       console.log("2");
       console.error("Se ha producido un error al intentar buscar el partido para modificar el resultado")
      });    
  </code></pre>
  
  <p>Does anyone have any idea what is wrong?</p>
  
  <p>Thank you very much in advance</p>