我得到一个角度为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
}
答案 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
}