У меня есть список cardsbackground
, содержащий имена изображений, чтобы получить изображения, у меня есть API, который имеет в качестве параметров номер сертификата и имя изображения.
Я хочу отображать изображения, соответствующие именам, которые есть в списке cardsbackground
Проблема в том, что forkJoin
возвращает список изображений, и я хочу отображать для каждого изображения его имя.
Когда я хочу отобразить имя внутри subscribe
, оно ничего не отображает
forkJoin(
this.cardsBackground.map(
(name, index) => this.cardBackgroundService.getImage(certificateNumber, name)
)
).subscribe(
data => data.forEach(element => console.info(name + " - " + element))
);
Вы определяете переменную 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.info(element.name + " - " + element)));
данные подписки возвращаются неопределенными
Я забыл скобки вокруг объекта, теперь должно работать.
Вы написали API? Потому что, если вы напишете API, вы можете вернуть для каждого изображения поле имени.