this.obsData
.concatMap((vhosts) => this.apiService.findVH(vhosts))
.subscribe((data) => {
this.data = data.docs[0]
this.data.Locations.forEach((loc, index) => {
if (loc.ip=== undefined) {
this.apiService.findLocation(loc)
.subscribe((data) => {
this.data = data.docs[0]
this.idIP = this.data.ip;
loc.ip== this.idIP ;
})
}
});
this.jsonData = this.jsonData.concat(this.data);
});
在这里,我从每个 vhost 获取数据并将它们连接到一个名为 jsonData 的整个数组,该数组将包含每个 vhost 的所有位置。在 Location 中有一个名为 IP 的变量,其中一些是未定义的。这就是为什么我有 if 语句来检查它们是否未定义的原因。如果它们确实未定义,我会在每个位置内进行更彻底的搜索并获取适当的 IP 名称。然后我将 loc.ip 设置为适当的 this.data.IP 名称。但是,jsonData 数组连接数据而无需等待我设置未定义的 ip 名称,因为它们是异步的。如何让 jsonData 等待连接,直到所有位置 ip 都未定义?