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

时间:2018-07-05 08:34:05

标签: angular

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

@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()(数千个数据要循环)。

0 个答案:

没有答案