Присвоение значения переменной внутри метода подписки не устанавливается вне метода подписки - PullRequest
1 голос
/ 30 апреля 2019

Как получить доступ к методу вне подписки

public ttl_count = 0;
ngOnInit() {
    this.MacService.getAllCouseCount().subscribe((res)=> {
        this.ttl_count = res['count']
    });
}

Всякий раз, когда я console.log(this.ttl_count) в рамках функции подписки, я получаю правильный результат, но всякий раз, когда я регистрирую его вне функции подписки, я получаю 0

1 Ответ

1 голос
/ 30 апреля 2019

Это известный вопрос.Это связано с тем, что все поведение наблюдаемого и подписки является асинхронным, поэтому оно будет иметь значение сразу после подписки.Так что функции должны быть запущены после саб.

public ttl_count=0;

ngOnInit()
{
  this.MacService.getAllCouseCount().subscribe((res)=>
   {
       this.ttl_count=res['count']; // <-- just here it gets the value.
       console.log(this.ttl_count); // <-- it has value, it happend after!

       this.example();
   });
  console.log(this.ttl_count); // <-- no value, it happend before.
}  

public example(): void 
{
    console.log(this.ttl_count); // <-- it has value here.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...