我在网格中有包含每个公司的用户数的单元格,这个数字来自typescript方法getNumberOfUsers(),这个方法调用后端web服务返回的用户数。问题:尽管getNumberOfUsers()在控制台中打印用户编号,但所有单元格都显示0
<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);
}我想做同步方法
发布于 2017-09-19 22:42:50
异步方法不能以同步方式工作。推荐你去读一读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}}https://stackoverflow.com/questions/46303146
复制相似问题