Quando ocorrer um erro na observable quero exibir uma mensagem para o usuário com o botão "TENTAR NOVAMENTE" que realizará uma nova chamada ao servidor, como fazer isso com o pipe async do angular. Segue o código abaixo:
public product$: Observable<string> = this.api
.getProduct()
.pipe(
catchError(() => {
alert('erro ao buscar produto, deseja tentar novamente?');
return of('');
}),
);
HTML
<div *ngIf="(product$ | async) as product">
{{product}}
</div>