Angular2: Abmeldung von http im Service

8

Was ist die beste Vorgehensweise, um sich innerhalb eines Angular2-Dienstes von einem http-Abonnement abzumelden?

Momentan mache ich das, aber ich bin mir nicht sicher, ob das der beste Weg ist.

%Vor%     
NCC-2909-M 29.11.2016, 08:56
quelle

1 Antwort

20

Ein Service in Angular ist ein Singleton. Dies bedeutet, dass der Service für die gesamte Lebensdauer Ihrer Anwendung bestehen wird.

Der Grund, warum Sie sich von einer Observablen abmelden müssen, ist, Speicherlecks zu vermeiden. Wann bekommst du Speicherlecks? Wenn etwas Müll gesammelt wurde, während es noch einem beobachtbaren Ereignis-Listener zugeordnet war, Socket, ...

Da ein Angular-Dienst niemals zerstört wird, solange Ihre gesamte Anwendung nicht zerstört wird, gibt es keinen wirklichen Grund, sich davon abzumelden. Das Observable wird entweder vervollständigen oder Fehler oder weiter so lange wie Ihre Anwendung tut.

Fazit: Das Abbestellen in einem Service ist sinnlos, da es keine Speicherlecks geben kann.

    
KwintenP 30.11.2016, 10:00
quelle

Tags und Links