Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度TS循环通过传入数据_Angular_Typescript_Loops - Fatal编程技术网

Angular 角度TS循环通过传入数据

Angular 角度TS循环通过传入数据,angular,typescript,loops,Angular,Typescript,Loops,我正试图通过一系列传入的数据进行循环,这样我就可以在地图上的传单中显示信息了 这是我的班级: export class OpenStreetMapComponent implements OnInit { @Output() private add = new EventEmitter(); @Output() private edit = new EventEmitter<number>(); artworkList: Artwork[]; 出于某种原因,我的控制台不

我正试图通过一系列传入的数据进行循环,这样我就可以在地图上的传单中显示信息了

这是我的班级:

export class OpenStreetMapComponent implements OnInit {
  @Output() private add = new EventEmitter();
  @Output() private edit = new EventEmitter<number>();
  artworkList: Artwork[];
出于某种原因,我的控制台不断出现此错误:

错误类型错误:“\u a未定义”

.retriveAll()
方法是一种承诺,在尝试使用
此.artworkList
之前,您必须等待
此方法,或者您可以将以下内容放入
中。然后
调用的一部分

for (let artwork of this.artworkList) {
  console.log(artwork.name);
}

当前,循环与对方法的调用一起异步运行,该方法返回一个
承诺
,该方法试图循环通过一个空的
this.artworkList
,从而导致问题。

.retriveAll()
方法是一个承诺,在尝试使用
this.artworkList
之前,您必须等待
此方法,或者您可以将以下内容放入
中。然后调用的
部分

for (let artwork of this.artworkList) {
  console.log(artwork.name);
}


当前,循环与对方法的调用一起异步运行,该方法返回一个
承诺
,该方法试图循环通过一个空的
this.artworkList
,从而导致问题。

您的循环同步运行,而您异步获取它迭代的数据。 您必须将实际循环移动到
然后
-块中,这样您就不会访问可能未定义的

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);
    }
  });
}


您的循环是同步运行的,而您是异步获取它迭代的数据的。 您必须将实际循环移动到
然后
-块中,这样您就不会访问可能未定义的

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);
    }
  });
}


您可以通过异步调用作为承诺来检索数据,但是可以同步地迭代数组。您应该将for循环移动到
调用中,然后
调用。您可以通过异步调用作为promise来检索数据,但可以同步迭代数组。您应该将for循环移动到
调用中,然后
调用。