我需要通过提供ID的值数组来请求汽车的名称。当我尝试执行此操作时,我收到了未定义的http请求,但是我不明白为什么会这样? 我的代码是。
s = [1,2,3,4,5,6];
{
this.s.forEach(function(v,index){
this.http.get("http://127.1.1.0:5000/car/"+v)
.subscribe((data)=>{
this.car_name = data.name; // data[id:1,name:"BMW"]
this.cars.push({
"name":this.car_name
})
console.log(this.cars);
})
}
我的代码有什么问题? “无法读取未定义的HTTP”,这是我得到的错误。任何帮助?
答案 0 :(得分:0)
您可能正在丢失this
的上下文,因为您正在使用function()
。这就是http
未定义的原因。
相反,请使用粗箭头语法(() => {})
(ES6),它将保留this
的上下文。
this.s.forEach((v,index) => {
this.http.get("http://127.1.1.0:5000/car/"+v)
.subscribe((data)=>{
this.car_name = data.name; // data[id:1,name:"BMW"]
this.cars.push({
"name":this.car_name
})
console.log(this.cars);
});
})