Angular · Middle · Frage 19 von 75
Warum sendet dieser Code zwei HTTP-Anfragen, und wie behebt man das?
user$ = this.http.get<User>("/api/me");
// template:
// {{ (user$ | async)?.name }} {{ (user$ | async)?.email }}- 1Das Observable ist kalt, jedes
asyncabonniert selbst;shareReplay(1)nutzen - 2
HttpClientwiederholt jede Anfrage automatisch; mitretry: 0abschalten - 3Die
async-Pipe sendet im Dev-Modus immer doppelt, nichts zu beheben
Antwort zeigen
Richtige Antwort: Das Observable ist kalt, jedes async abonniert selbst; shareReplay(1) nutzen
Erklärung
Jedes Abo führt die Anfrage aus. Nutze einmal @if (user$ | async; as user), wandle mit toSignal in ein Signal um oder teile den Stream mit shareReplay({ bufferSize: 1, refCount: true }).