这个问题可能已经回答了,但我还是想不出解决问题的办法:Angular-convert-a-observablenumber-to-a-number和how-to-convert-observable-data-to-a-number-in-angular6
我试图使用长度,下一个和prev变量。这些变量被定义为:
let length = this.http.get<Project[]>(this.projectUrl).pipe(map(res => res['count']));
let next = this.http.get<Project[]>(this.projectUrl).pipe(map(res => res['next']));
let prev = this.http.get<Project[]>(this.projectUrl).pipe(map(res=> res['previous']));我必须将这些变量输入数字,这将使我能够编写自定义分页函数。我尝试使用<>关键字输入它们,如下所示(尽管这不是一种明智的方法):
private length0 = <unknown> this.http.get<Project[]>(this.projectUrl).pipe(map(res => res['count']));
public length1 = <number> this.length0;
private next0 = <unknown> this.http.get<Project[]>(this.projectUrl).pipe(map(res => res['next']));
public next1 = <string> this.next0;
private prev0 = <unknown> this.http.get<Project[]>(this.projectUrl).pipe(map(res=> res['previous']));
public prev1 = <string> this.prev0;但是当我检查我的控制台时,这些仍然是可观察的()类型。
有人能建议我如何把这些变量输入数字吗?
发布于 2019-03-11 06:52:41
在这种情况下,您可以使用async / await将可观察到的承诺转换为
let length = await this.http.get<Project[]>(this.projectUrl).pipe(map(res => res['count']))toPromise();您需要添加异步以使用“等待” [让长度=等待this.http.get(this.projectUrl).pipe(map(res => res‘’count‘))toPromise();}
https://stackoverflow.com/questions/55096330
复制相似问题