Ich versuche, eine einfache Komponente zu erstellen, die ein boolesches Flag isLoading
hat, das true
ist, wenn eine Route mehr als eine halbe Sekunde zur Auflösung benötigt hat.Winkel 4: Route Übergang Laden
Ich habe das Stück, um sie auszuschalten:
this.router.events
.filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError)
.subscribe(event => this.isLoading = false);
Aber wie sage ich:
this.router.events
//given a NavigationStart
//If you don't see NavigationEnd/NavigationCancel/NavigationError within 500ms
.subscribe(event => this.isLoading = true);
Dank Deborah beginnen - Ich denke, dass diese Lösung vom Computer/Browser des Benutzers abhängig ist, was sie letztendlich sehen. Ich möchte mehr Kontrolle über es mit einer bestimmten Entprellzeit haben, wenn möglich – John
die 500ms Timeout wird nicht auf diese Weise behandelt werden. Der beste Weg ist die Verwendung von rxjs .debounce (500) als @KeniSteward, wie unten vorgeschlagen. Sie können einen Rückruf haben, um das Timeout manuell zu behandeln, aber RxJs stellt bereits die Funktion bereit, um es zu behandeln. –