您能否在评论中回答问题
class TextComp
{
result: string;
constructor() {
this.getdata().subscribe(result => {
console.log("result received");
this.result = result;
});
console.log("called before result received " + this.result);
//this.result is NULL/UNDEFINED because this line executed before data received
// So how we can eliminate this situation??? or
// Is there any way to make synchronus call to http in angular 2
}
getdata() {
return http.get('test.json')
.map(response => response.json());
}
}
那么我们如何才能消除这种情况?要么 有没有办法在angular 2
中对http进行同步调用答案 0 :(得分:1)
如果你需要在这种情况下进行同步调用,你的代码应该是这样的:
this.getdata().subscribe(result => {
console.log("result received");
this.result = result;
//function or snippet which will be called after subscribe is complete...
});
因为您的订阅方法异步工作。我建议你也看看promises。