Saltar al contenido

No se puede asignar valor a la variable usando el método subscribe() en Angular 2

Esta es la respuesta más válida que te podemos dar, pero primero obsérvala detenidamente y valora si se puede adaptar a tu trabajo.

Solución:

con este codigo

export class TopbarComponent 
  companyCount;

  constructor (private dataService: DataService)
    dataService.getCompaniesCount().subscribe(res => this.companyCount = res.count); //doesn't work
    dataService.getCompaniesCount().subscribe(res => console.log(res.count)); //works    
  

res => this.companyCount = res.count no se ejecuta inmediatamente. Cuando getCompaniesCount() realiza una solicitud a un servidor, se necesita un largo tiempo hasta que llega la respuesta y el observable llama a la función pasada a subscribe(...) (res => this.companyCount = res.count).

La ejecución del constructor, ngOnInit, ngAfterViewInit() y muchas otras cosas habrán sucedido antes de que llegue la respuesta.

Puedes ver

subscribe(res => this.companyCount = res.count)

como registrar un controlador de eventos que se llama cuando ocurre un evento.

Todo el código que depende de los datos disponibles debe estar correctamente encadenado.

La forma más sencilla es pasar al código en subscribe(...)

  constructor (private dataService: DataService)
    dataService.getCompaniesCount().subscribe(res => 
      this.companyCount = res.count); 
      // more code that depends on `res.count` being set goes here
    );
    dataService.getCompaniesCount().subscribe(res => console.log(res.count)); //works    
  

Recuerda compartir esta noticia si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *