首页 > 解决方案 > 通过传入数据的角度 TS 循环

问题描述

我正在尝试遍历一组传入数据,以便可以在传单中的地图上显示信息!

这是我的课:

export class OpenStreetMapComponent implements OnInit {
  @Output() private add = new EventEmitter();
  @Output() private edit = new EventEmitter<number>();
  artworkList: Artwork[];

传入的数据存储在 artifactList 数组中

constructor(private artworkService: ArtworkService) { }
  ngOnInit() {
    this.refresh();
  }

  refresh() {
    this.artworkService.retrieveAll().then(
      artworkList => this.artworkList = artworkList
    );
    for (let artwork of this.artworkList) {
      console.log(artwork.name);
  }

出于某种原因,我不断收到此错误是我的控制台:

错误类型错误:“_a 未定义”

标签: angulartypescriptloops

解决方案


您的循环同步运行,而您获取它异步迭代的数据。您必须将实际循环移动到then-block 中,这样您就不会访问可能的undefined值。

constructor(private artworkService: ArtworkService) {
}

ngOnInit() {
  this.refresh();
}

refresh() {
  this.artworkService.retrieveAll().then((artworkList) => {
    this.artworkList = artworkList;
    for (let artwork of this.artworkList) {
      console.log(artwork.name);
    }
  });
}

推荐阅读