首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在两个API角度9之间创建每个ID的数组数据

在两个API角度9之间创建每个ID的数组数据
EN

Stack Overflow用户
提问于 2020-08-11 16:02:27
回答 1查看 235关注 0票数 0

我正在学习和坚持这种逻辑。我们可以从两个API之间的每个ID中获取数组数据吗?

让我们先调用API获取列表ID

代码语言:javascript
运行
复制
[1,2,3,4,5]

然后第二个API获取包含详细数据的列表。如果第二个API在url (ex: htp://pokeapi.com/data/2)上没有id,则结果为null。

代码语言:javascript
运行
复制
{"by":"abc","id":2,"score":2000,"desc":"passed"}

我希望通过id第一API从第二个API获取数据,并获得包含所有数据的结果数组。

我试过了,但不是很好。

代码语言:javascript
运行
复制
.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中

代码语言:javascript
运行
复制
@Input() dataId: any;
items: any;

getPlayer() {
  this.firstAPI
    .get()
    .subscribe(
      items => {
        this.items = items;

        console.log('data ' + JSON.stringify(this.items));
      }
    );
}

在Html文件中

代码语言:javascript
运行
复制
<li *ngFor="let item of items; let i = index">
  <ion-label routerLink="/detail/{{ item }}">
    <item class="player" [dataId]="item"></item>
  </ion-label>
</li>

谢谢你的帮助!

注意:我已经完成了这个任务。刚从其他组件传递数据.

EN

回答 1

Stack Overflow用户

发布于 2020-08-11 16:26:27

在管道中使用rxjs操作符:

代码语言:javascript
运行
复制
    .pipe(
         concatMap(x => x),
         switchMap(x => this.secondAPI.get({ id: x })),
         toArray()
    )
    .subscribe(item => console.log(item))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63362030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档