Angular,HttpClient转换获得对数字的响应

问题描述 投票:0回答:1

我有一个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 那么如何转换得到数字的响应?

angular get angular7
1个回答
0
投票

使用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

您需要将您的进程置于订阅中,或使用回调函数。

© www.soinside.com 2019 - 2024. All rights reserved.