在forkJoin之外使用属性

时间:2019-05-28 12:18:38

标签: angular typescript rxjs

我有一个列表cardsbackground,其中包含图像的名称,要获取图像,我有一个api,该api的参数为证书编号和图像名称

我要显示与列表cardsbackground

中的名称匹配的图像

问题是forkJoin返回图像列表,我想为每个图像显示其名称

当我想在subscribe中显示名称时,它什么也不显示

forkJoin(
    this.cardsBackground.map(
        (name, index) => this.cardBackgroundService.getImage(certificateNumber, name)
    )
).subscribe(
    data => data.forEach(element => console.log(name + " - " + element))
);

1 个答案:

答案 0 :(得分:2)

您可以在name函数范围内定义map变量,这将导致在预订范围内无法访问该变量。

一种简单的方法是通过管道传递服务调用,并返回一个具有名称和结果的新对象,以便以后访问。

forkJoin(
    this.cardsBackground.map(
      (name, index) => this.cardBackgroundService.getImage(certificateNumber, name).pipe(
        map(image => ({
          name: name,
          image: image
        }))
      )
    )
).subscribe(data => data.forEach(element => console.log(element.name + " - " + element)));