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