Это может не работать, потому что AppComponent
, который действует как HttpInterceptor, не совпадает с отображаемым компонентом.
Вы регистрируете перехватчик в модуле так:
providers: [{provide: HTTP_INTERCEPTORS, useClass: AppComponent, multi: true } ]
Это означает, что когда приложение запрашивает HTTP_INTERCEPTORS, другой экземпляр AppComponent создается как служба и действует как перехватчик. Предполагается, что перехватчики являются глобальными службами, которые изменяют HTTP-запросы, а не изменяют элементы пользовательского интерфейса. Я думаю, что вы пытаетесь сделать что-то еще.
Если вы хотите показать спиннер во время выполнения запроса, вы можете реализовать его очень просто, например:
ngOnInit(){
console.log('on init');
this.ShowSpinner = true; // starts spinner
this.http.get("https://swapi.co/api/people/1").subscribe(data => {
console.log(data);
}, err => {
console.log(err);
},
() => {
this.ShowSpinner = false; // when the request completes or fails hide it
});;
}
Вот StackBlitz с этим решением.
Если вам необходимо прослушать все события и получить информацию о прогрессе, проверьте документацию о прослушивании событий прогресса .