我正在学习和坚持这种逻辑。我们可以从两个API之间的每个ID中获取数组数据吗?
让我们先调用API获取列表ID
[1,2,3,4,5]
然后第二个API获取包含详细数据的列表。如果第二个API在url (ex: htp://pokeapi.com/data/2)上没有id,则结果为null。
{"by":"abc","id":2,"score":2000,"desc":"passed"}
我希望通过id第一API从第二个API获取数据,并获得包含所有数据的结果数组。
我试过了,但不是很好。
.subscribe(
(items) => {
for (var i = 0; i < items.length; i++) {
var result = items[i];
this.secondAPI
.get({ id: result })
.subscribe(
(item) => {
this.items = item;
console.log('itemm ' + JSON.stringify(this.items));
}
);
}
},
error => console.log('Error data ' + error)
);
我尝试了其他方法,将数据传递到输入中,但不显示结果(空)。
在player.ts中
@Input() dataId: any;
items: any;
getPlayer() {
this.firstAPI
.get()
.subscribe(
items => {
this.items = items;
console.log('data ' + JSON.stringify(this.items));
}
);
}
在Html文件中
<li *ngFor="let item of items; let i = index">
<ion-label routerLink="/detail/{{ item }}">
<item class="player" [dataId]="item"></item>
</ion-label>
</li>
谢谢你的帮助!
注意:我已经完成了这个任务。刚从其他组件传递数据.
发布于 2020-08-11 16:26:27
在管道中使用rxjs操作符:
.pipe(
concatMap(x => x),
switchMap(x => this.secondAPI.get({ id: x })),
toArray()
)
.subscribe(item => console.log(item))
https://stackoverflow.com/questions/63362030
复制相似问题