Я новичок в Angular 7, я пытаюсь показать экран загрузки при загрузке компонента приложения (корневого), а затем у меня есть 2 компонента Get1 и Get2, которые вызывают 2 запроса Get http соответственно. Как скрыть панель загрузки, когда оба запроса Get выполнены. В терминах AngularJS у нас было promise.all, чтобы знать, когда все запросы были выполнены следующим образом http://jsfiddle.net/danielzen/t7g7djzk/ Как или что делать в Angular с помощью Observables
я могу сделать это
this.navbarService.getFiscalDateList(this.resultsFilterRootObject)
.subscribe((data: FiscalWeekListRootObject) => {
this.fiscalWeekListRootObject = {...data};
this.currentWeek = this.fiscalWeekListRootObject.data.vehicleFiscalDate.vehicleFiscalWeek;
//hide loading screen since there is only one GET what to do for multiple GET requests
}
);
Ожидается: скрыть экран загрузки, когда 2 Observable разрешены в Angular.
У меня была точно такая же проблема раньше, лучший способ решить ее, на мой взгляд, - использовать перехватчик.
Вот отличная статья, объясняющая, как заставить это работать правильно, и оно отлично работает с 1 или несколькими вызовами http. Он включает в себя код, который вы можете скопировать и вставить, чтобы вы могли быстро запустить свое приложение.
https://nezhar.com/blog/create-a-loading-screen-for-angular-apps/
Вы можете сделать это, внедрив перехватчик. См. этот stackblitz здесь: https://stackblitz.com/github/melcor76/interceptors?file=src%2Fapp%2Finterceptors%2Floader.interceptor.ts
Это из этой статьи- https://blog.angularindepth.com/top-10-ways-to-use-interceptors-in-angular-db450f8a62d6