TransWikia.com

¿Cómo puedo hacer una petición a servicio antes de la creación del componente?

Stack Overflow en español Asked on February 9, 2021

Contexto:

Es una aplicación que cuenta con un login, una vez te logueas este componente te redirige a la página de inicio, aquí me gustaría añadir una alerta donde figura "Cargando…" durante el tiempo que tarda el servicio en recoger la información.

Mi problema es que cuando me logueo realiza la llamada al service, pero las funciones del service que recogen la información no funcionan. A no ser que navegue por la aplicación y vuelva al home ( utilizando el navbar y volviendo al menú principal ). Es decir, no realiza las peticiones el Servidor correctamente por lo que cuando te logueas aparece una pagina de incio pobre y sin desplegar la informacion deseada.

Personalmente, no tengo ni idea de cual es el problema, ya que como he dicho si navego por la web y vuelvo al home si me recoge los datos, pero no "de primeras".

Aquí os dejo el código del HomeComponent – Inicio, donde hago la llamada al Servicio:

export class InicioComponent implements OnInit {

  constructor( private fourP: FourPService ) {}

  ngOnInit() {

      
    Swal.fire({
      allowOutsideClick: false,
      title: 'Cargando...',
      text: 'Espere por favor'
    });
    Swal.showLoading();
    this.fourP.getToken();
    Swal.close() );


  }

}

Ignorad el Swal.fire, Swal.showLoading, Swal.close -> Se trata de una librería de alertas: SweetAlert2, muy recomendable.

Y aquí os dejo la parte que nos incumbe de mi servicio:

getToken(){
    const response = this.http.post( url , this.tokenHeaders );
    response.subscribe(data => {
      this.token = 'Bearer ' + data['access_token'];
    });
    this.getAllApiIDs().then( () => this.getAllApis() );
    console.log( this.apis );
    this.getAllAppsIds().then( () => this.getAllApps() );
    console.log( this.apps );
  }

Y a continuación os dejo unas capturas de pantalla de los console.logs que realizo en el Servicio:
Segun accedo a la app desde el login me figuran los console.logs con una length de 0

Segun accedo a la app desde el login me figuran los console.logs con una length de 0, mientras que si navego por la app y vuelvo al home los console.logs si recogen la informacion:

Ambos devuelven un resultado pero sino no cabían en la captura

Ambos console.logs devuelven un resultado pero no me cabía en la imagen.

Por lo tanto mi problema es: ¿Cómo puedo llamar al Service y que me devuelva una respuesta válida sin tener que navegar por la aplicación?

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP