如何获取Angular 2中服务返回的数组元素?

How to get the elements of an array returned by a service in Angular 2?

我正在学习 Angular 2 + PrimeNG,我正在研究这个快速入门项目:https://github.com/primefaces/primeng-quickstart

它是一个 CRUD 并且运行良好。所有数据都显示在我浏览器的 table 中。太棒了!

现在我正在尝试稍微更改一下代码。一切正常,除了我的愚蠢代码。

export class AppComponent {

    displayDialog: boolean;

    car: Car = new PrimeCar();

    selectedCar: Car;

    newCar: boolean;

    cars: Car[];

    constructor(private carService: CarService) { }

    ngOnInit() {
        this.carService.getCarsMedium().then(cars => this.cars = cars);

        //THIS IS MY CODE:
        console.log(this.cars);            
        for (let entry of this.cars) {
            console.log(entry);
        }
    }

第一个 console.log 给了我一个 undefined 消息。然后 for 中断应用程序。

所以我基本上是在尝试在控制台中显示与在浏览器中显示的相同的数据。有人可以帮我吗?

谢谢! =)

需要把依赖observable结果的代码移到then(...)里面,否则代码会在值可用之前执行

ngOnInit() {
    this.carService.getCarsMedium().then(cars => {
        this.cars = cars
        //THIS IS MY CODE:
        console.log(this.cars);            
        for (let entry of this.cars) {
            console.log(entry);
        }
    });

}