Cenário: dados duplicados com múltiplos `async` pipe
Pergunta
Você usa `obs$ | async` três vezes no template pra ler campos do mesmo objeto, e nota três requisições HTTP. Por quê, e como resolver?
Resposta esperada
Cada `| async` cria uma subscription INDEPENDENTE no Observable. Se `obs$` é um `HttpClient.get(...)` (Observable frio — refaz o trabalho pra cada subscriber), três `async` = três requisições. Soluções: (1) `*ngIf="obs$ | async as dados"` — assina uma vez, guarda o resultado em `dados`, e o resto do template usa `dados` sem re-assinar; (2) `shareReplay(1)` no pipe do Observable pra multicast — os subscribers compartilham a última emissão; (3) resolver os dados no route resolver / com signals e ler o valor já materializado. A opção (1) é a idiomática pra um bloco de template.
Por que perguntam isso
Cenário pleno de Angular. O 'as' no *ngIf é a resposta idiomática; `shareReplay(1)` é a alternativa. Conecta com o leak de subscription.