如何使http请求值数组

时间:2018-07-10 01:20:07

标签: angular typescript

我需要通过提供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”,这是我得到的错误。任何帮助?

1 个答案:

答案 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);
    });
})