Your approach with using the async pipe inside *ngFor should work fine, however, it looks like your syntax is not quite right.
Instead of let-product-data
, try something like this:
<li *ngFor="let product of products$ | async">
{{ product.name }}
<img [src]="getProductImage(product.id) | async">
</li>
Here's a working StackBlitz
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…