Angular 2 HTTP。将响应存储在数组中

时间:2017-02-14 10:15:45

标签: http angular

所以我在Angular2中有这个服务

fetchData(){
    return this.http.get('https://ng-workout.firebaseio.com/Workouts/.json').map(
        (res) => res.json()
    );
}

然后是这个组件

export class HomeComponent  {

workouts = [];

constructor(private dataService: DataService){
}

ngOnInit(){
this.dataService.fetchData().subscribe(
    data=> this.workouts =data
    );
    console.log(this.workouts);
    }
}

所以事情是,当我控制日志时,这个工作'它返回0,一个空数组。难道不存在json文件中的所有记录吗?

1 个答案:

答案 0 :(得分:1)

您需要将console.log()代码移动到您传递给订阅的回调

ngOnInit(){
  this.dataService.fetchData().subscribe(
    data=> {
      this.workouts =data;
      console.log(this.workouts);
    });
}

fetchData(observables)是异步的。传递给订阅的函数在数据可用时执行。