This repository was archived by the owner on Mar 17, 2026. It is now read-only.
Bug 2026039391: Fehler unendlicher Loading-Screen bei Restart der Application - #52
Open
NVNKL wants to merge 2 commits into
Open
Bug 2026039391: Fehler unendlicher Loading-Screen bei Restart der Application#52NVNKL wants to merge 2 commits into
NVNKL wants to merge 2 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Infos
Problem
Die
login()-Methode im broker.service.ts hat keinfireLoadingChanged(false)nach der Verarbeitung der Response. Beim Erstlogin fällt das nicht auf, weil die ViewerComponent zu dem Zeitpunkt noch nicht existiert (User ist auf der Login-Seite). Der_onLoadingChanged$$ist ein Subject, kein BehaviorSubject — die ViewerComponent bekommt also nur Emissionen, die nach seiner Subscription kommen.Beim Restart ist die ViewerComponent aber bereits aktiv und subscribed:
fireLoadingChanged(false) → isLoading = false
doRequest() → fireLoadingChanged(true) → isLoading = true
Kein fireLoadingChanged(false) kommt → isLoading bleibt permanent true
Warum keine Umstellung auf BehaviorSubject?
Subject: Neue Subscriber bekommen nur zukünftige Emissionen.
BehaviorSubject: Neue Subscriber bekommen sofort den letzten Wert bei Subscription.
Konkrete Auswirkung
Der ViewerComponent subscribed sich in
ngOnInitaufonLoadingChangedDelayed:Erstlogin: login() → doRequest() → fireLoadingChanged(true) → Response verarbeitet → onAfterResponse() → showViewer() → ViewerComponent wird erstellt und subscribed.
Mit Subject: ViewerComponent bekommt nichts → isLoading bleibt false → kein Blocker
Mit BehaviorSubject: ViewerComponent bekommt sofort true → Blocker wird angezeigt, obwohl das Loading eigentlich schon vorbei ist
Das ist genau der Grund, warum es aktuell beim Erstlogin funktioniert — der Subject "vergisst" das true, das vor der Subscription emittiert wurde. Mit einem BehaviorSubject würdest du das bestehende (funktionierende) Erstlogin-Verhalten kaputt machen.
Der Subject ist hier also die richtige Wahl. Das eigentliche Problem war nicht der Subject-Typ, sondern das fehlende fireLoadingChanged(false) in der login()-Pipeline — und das ist jetzt mit dem finalize behoben