如何在tmp
中写入收到的数据?通过return
,promise
对象从函数返回,而函数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);
}
答案 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}}生命周期钩子只会在构造函数后执行一次。如果编写的代码在组件中,那么它将在每次创建组件对象时执行,但如果它在服务中,那么它将在您提供服务时执行一次,因为服务对象是单例对象