首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同步方法角度2

同步方法角度2
EN

Stack Overflow用户
提问于 2017-09-19 22:31:34
回答 1查看 587关注 0票数 0

我在网格中有包含每个公司的用户数的单元格,这个数字来自typescript方法getNumberOfUsers(),这个方法调用后端web服务返回的用户数。问题:尽管getNumberOfUsers()在控制台中打印用户编号,但所有单元格都显示0

代码语言:javascript
复制
 <tr>
   <td>
     {{ getNumberOfUsers() }}
   </td>
 </tr>

组件ts文件

代码语言:javascript
复制
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文件

代码语言:javascript
复制
getUserCount(): Observable<any> {
  return this.http.post(this.apiUrl+'/ getUserCount);
}

我想做同步方法

EN

回答 1

Stack Overflow用户

发布于 2017-09-19 22:42:50

异步方法不能以同步方式工作。推荐你去读一读How does JavaScript handle AJAX responses in the background?

在这种情况下,您可以考虑使用async管道来显示由异步性质填充的值。

更改工厂方法以从中返回json

代码语言:javascript
复制
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

代码语言:javascript
复制
{{ (getNumberOfUsers() | async)?. numberOfUser}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46303146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档