我有一个有效的api方法,并返回一个int类型。我正在尝试将get响应转换为角度数:
这就是我现在正在做的事情:
要求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")
}
答案 0 :(得分: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
您需要将进程放入订阅中,或使用回调函数。