在服务调用角度2之后获取未定义的值

时间:2017-07-10 13:34:35

标签: angular http typescript angular-services

我得到一个角度为2的变量的未定义值。我有一个函数调用一个服务,它提供数据来初始化一个变量,现在我将这个变量提供给另一个执行获取http请求的函数。并且请求无法作为未定义的变量处理。

代码:

variable:any;
constructor(private http: Http, private serviceOne: ServiceOne){
function1();    //service call to get data
function2();    //http get request
}

function1(){
calls request  //subscribes data
data =>{this.variable = data.var};
}

function2(){
console.log(this.variable);   //undefined
http get request uses this.variable
}

1 个答案:

答案 0 :(得分:0)

似乎你的function1()执行异步调用来设置数据。变量。如果是这种情况,则必须等待异步功能完成才能转移到function2()。

尝试

variable:any;
constructor(private http: Http, private serviceOne: ServiceOne){
function1();    //service call to get data
}

function1(){
yourAsyncCall(). subscribe(res=>{
this.function2(res);
}) 
}

function2(variable){
this.variable=variable ;
//Use variable in your http requeat
}