2017-07-17 54 views
0

如何在tmp中寫入接收的數據?通過return,該promise對象從函數返回,並在功能tmp它是不可見如何通過「get」獲得角度輸出信息?

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

「記錄」是什麼意思? – Flaugzig

+0

@Flaugzig編寫 – Nikolay

+0

setTimeout由設計執行一次。另見[this](https://www.w3schools.com/jsref/met_win_settimeout.asp)頁面。 –

回答

1

試試這個: -

加進口用於響應從@angular/http

this.http.get('http://localhost:1337/api/users') 
     .toPromise() 
     .then((response:Response)=> { this.tmp = response.json() }) 
     .catch(this.handleError); 

中,你已經寫了setTimeout()將構造後只執行一次的ngOnInit()生命週期掛鉤。如果編寫的代碼位於組件中,那麼每次創建組件對象時都會執行它,但是如果它處於服務狀態,那麼當您提供服務時它將執行一次,因爲服務對象是單例對象

+0

感謝'this.http.get'。 setTimeout也不適用於其他功能。 – Nikolay

+0

你能告訴我你在哪裏添加setTimeout() –

+0

關於'setTimeout()'什麼都沒有。這是關於你在哪裏使用它。如果你讓我爲了什麼目的而使用'setTimeout()',那麼我可以幫你。 –

相關問題