Angular 无法从中的subscribe方法中获取数据

Angular 无法从中的subscribe方法中获取数据,angular,Angular,这个问题我会简单明了。 在我的项目中,我有一个使用此方法的服务组件: @Injectable() export class HolidaysServiceService { constructor(private http: Http){}; getAllHolidays(): Observable<Holidays[]> { return this.http .get(this.path + '/findAll') .map((res: Response) =&

这个问题我会简单明了。 在我的项目中,我有一个使用此方法的服务组件:

@Injectable()
export class HolidaysServiceService {
  constructor(private http: Http){};

 getAllHolidays(): Observable<Holidays[]> {
  return this.http
  .get(this.path + '/findAll')
  .map((res: Response) => res.json())
  .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
  }
}
    export class fooComponent implements OnInit {

    tab_jf: Holidays[] = [];

   constructor( private service: HolidaysServiceService) {}
    ngOnInit() {
    this.subscribeToService();
    console.log(this.tab_jf);
     // returns empty table

   }

 subscribeToService() {
   this.service.getAllHolidays().subscribe(
   (hol: Holidays[]) => {
    this.tab_jf = hol ;
    }
     console.log(this.tab_jf);
        // returns the correct data
     console.log(this.tab_jf.length); 
       // return the correct length : 24  

    }, err => console.error(err));
  console.log(this.tab_jf.length);
   // returns length = 0
 }
}
我的目标是使this.tab_jf在我的组件中始终可用

问题是我无法在subscribeToService()的subscribe()方法之外获取数据


Ps:从处理的角度来看,不可能在subscribeToService()之外使用subscribe()。

问题在于
ngOnInit()
中的
控制台.log
尚未填充数据。调用
subscribeToService()
函数后,它将立即运行。当服务将数据发送给订阅服务器时,它将包含数据。是的,我认为这是一个异步问题,但是我可以做些什么来获取该选项卡,因为我需要在其他方法中使用它吗?作为一个选项,您可以从订阅服务器调用您的方法。谢谢,但我正在寻找其他解决方案任何一个?仍然无法解决它