Угловой, HttpClient convert получить ответ на число - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть метод API, который работает и возвращает тип int.Я пытаюсь преобразовать ответ в угловое число: enter image description here

Это то, что я делаю сейчас:
Запрос к API:

  GetNumberOfPages(topValue: number, companyNamePattern: string) {
    return this.http.get<number>(apiUrl + '/getNumberOfPages?topValue=' + topValue +
      '&companyNamePattern=' + companyNamePattern, httpOptions)
      .pipe(
        tap(v => console.log('GetNumberOfPages complete')),
        catchError(this.handleError('GetNumberOfPages', []))
      );
  }

использование в компоненте:

  getNumberOfPages(topValue, companyNamePattern) {
    var numberOfPagesAny: any;
    this.api.GetNumberOfPages(topValue, companyNamePattern).subscribe(n => numberOfPagesAny = n);
    this.numberOfPages = parseInt(numberOfPagesAny, 10);

    console.log(this.numberOfPages + " number")
    console.log(numberOfPagesAny + " any")

  }

Но что бы я ни пытался, я не могу получить значение: enter image description here
Итак, как преобразовать полученный ответ в число?

1 Ответ

0 голосов
/ 16 апреля 2019

Когда вы используете Observable, вы делаете асинхронный вызов.Подписка вызывается только тогда, когда вы получаете ответ.

Это означает, что ваш console.log () обрабатывается до того, как вы введете подписку!

Итак, вы получите номер страницы, выследует добавить console.log в подписку, если вы хотите проверить это:

this.api.GetNumberOfPages(topValue, companyNamePattern).subscribe(n => { numberOfPagesAny = n, console.log("Number of page"+numberOfPagesAny);});

См .: https://angular.io/guide/observables#observables

Вам необходимо поместить свой процесс в подписку или использовать обратный вызовфункция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...