在这个问题上,我要简单明了。 在我的项目中,我有一个使用此方法的服务组件:
@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()(数千个数据要循环)。