如何在通过“获取”获得的角度输出信息?

时间:2017-07-17 17:28:58

标签: javascript angular promise angular-promise angular-http

如何在tmp中写入收到的数据?通过returnpromise对象从函数返回,而函数tmp则不可见

tmp: string;

constructor(private http: Http) {
  this.tmp = "load";
  this.GetUsers();
}

ngOnInit() {
  setTimeout(console.log("Hello"), 2000);
}
GetUsers() {
   this.http.get('http://localhost:1337/api/users')
    .toPromise()
     .then(function(response) {
       this.tmp = "success"
     })
    .catch(this.handleError);

此外,setTimeout不起作用。也就是说,它只运行一次。

constructor(private http: Http) {
  this.tmp = "load";
  this.GetUsers();
}

ngOnInit() {
}
GetUsers() {
  setTimeout(console.log("Hello"), 2000);
}

1 个答案:

答案 0 :(得分:1)

试试这个: -

@angular/http

的响应添加导入
this.http.get('http://localhost:1337/api/users') 
      .toPromise() 
      .then((response:Response)=> { this.tmp = response.json() }) 
      .catch(this.handleError);

您编写ngOnInit()的{​​{1}}生命周期钩子只会在构造函数后执行一次。如果编写的代码在组件中,那么它将在每次创建组件对象时执行,但如果它在服务中,那么它将在您提供服务时执行一次,因为服务对象是单例对象