У меня есть следующий код в приложении Angular:
services$
.pipe(
map(serviceModels => {
serviceModels
.forEach((srv, srvIdx) => {
// Resolve images in services
srv.images.forEach(async (img, imgIdx) => {
serviceModels[srvIdx].images[imgIdx] = await this.imageSrv.resolveImage(img).toPromise();
});
});
return serviceModels;
});
[...]
Результатом является один выброс с последующим изменением значения.
emit -> service.image [0] // 'unrendered-url' -> (wait) -> service.image [0] // correct-url / image-path
Я пытаюсь разрешить изображение из сервиса (this.imageSrv ), который берет строку и возвращает наблюдаемое / обещание с визуализированной строкой. Все, что мне нужно, это код для блокировки (или map () для удержания выброса до разрешения изображений), потому что я получаю два значения в Angular для services[0].images[0]
.
Самый простой выход - это поместите обещания в массив service[0].images
и img | async
в шаблонизаторе, но я бы хотел этого избежать и, возможно, узнать что-то новое.