我目前正在我的组件上执行多个HTTP get请求(链接),onInit'。我基本上想要获取id(字符串),将它们映射到本地数组,对于此数组的每个元素执行HTTP get请求(id),将这些结果映射到本地数组,获取id等等。
因此,您可以在彼此之后告诉很多重复请求,其中每个请求取决于前一个请求的结果。
// Get the dataassociations from the distinct ids
for (const dataASSID of distinctDataAssIDs) {
this.api.getDataAssociationByID(dataASSID).subscribe(
data => {
this.DataAssociations.push(data.body.entities.DATAASSOCIATIONS[0]);
});
}
// Get dataobject ids from dataassociations
const dataobjIDs: string[] = new Array();
for (const dataAss of this.DataAssociations) {
console.log(dataAss.languages.DUT + 'rsultrtrt');
if (dataAss.DATAOBJECTS !== undefined) {
for (const id of dataAss.DATAOBJECTS) {
dataobjIDs.push(id);
}
}
}
console.log(dataobjIDs);
// make ids distinct
let distinctDataObjIDs = new Array();
distinctDataObjIDs = Array.from(new Set(dataobjIDs));
console.log(distinctDataObjIDs);
// Get the dataobjects from the distinct ids
for (const dataObjID of distinctDataObjIDs) {
this.api.getDataObjectByID(dataObjID).subscribe(data => {
this.DataObjects.push(data.body.entities.DATAOBJECTS[0]);
});
}
我知道它目前是意大利面条代码,但我的问题是我如何链接这些请求?因为在第一个get请求的subscribe()之后。由于在执行代码期间尚未收到响应,因此无法执行下一步。
更新1(基于重复) 我希望是这样,但是我的请求都是因为循环而使我的情况变得困难。因为我想对前一个请求中获得的每个id执行请求