我在网格中有单元格,其中包含每个公司的用户数,这个数字来自typescript方法getNumberOfUsers(),这个方法调用后端Web服务返回用户数。 问题:所有单元格显示为0,尽管getNumberOfUsers()在控制台中打印用户数
<tr>
<td>
{{ getNumberOfUsers() }}
</td>
</tr>
组件ts文件
getNumberOfUsers(): number {
let NumUser=0;
this.callServices.getUserCount().subscribe((res: any) => {
NumUser = JSON.parse(res._body).numberOfUser;
Console.log(“NumUser=”+ NumUser)
},
(err) => console.error(' getUserCount::err==' + err)
);
return NumUser;
}
callService文件
getUserCount(): Observable<any> {
return this.http.post(this.apiUrl+'/ getUserCount);
}
我想制作同步方法
答案 0 :(得分:0)
异步方法不能以同步方式工作。建议您阅读How does JavaScript handle AJAX responses in the background?
在这种情况下,您可以考虑使用async
管道来显示由异步性质填充的值。
更改工厂方法以从中返回json
。
getUserCount ():Observable<any>
{
return this.http.post(this.apiUrl+'/ getUserCount).map(data => data.json())
}
//change getNumberOfUsers to return getUserCount Observable
getNumberOfUsers(): Observable<any>{
this.callServices.getUserCount();
}
<强> HTML 强>
{{ (getNumberOfUsers() | async)?. numberOfUser}}