У меня есть getResponseCount () метод, который запускается при загрузке страницы. Один из методов занимает более 4 минут, чтобы получить данные из серверной части (остальные методы выполняются менее чем за 3 секунды). Я загружаю счетчик, пока все методы не будут выполнены. Так что спиннер загружается почти как 4 с лишним минуты. Как только все методы выполняются, спиннер будет скрыт. Теперь я хочу, чтобы этот конкретный метод работал в фоновом режиме (асинхронно). Spinner не должен ждать выполнения этого метода. как этого добиться.
Пример кода, который я прикрепил ниже:
ngOnInit() {
this.loadControls();
this.loadApps();
this.loadReults();
this.getResponseCount();
this.loadPreferences();
}
private async getResponseCount() {
this.services.getResponseCount().subscribe(
result => {
this.Count = Number(result);
this.spinnerService.hide();
},
error => {
this.handleError('Error Retrieving Partitions count.', error),
this.spinnerService.hide();
});
return;
}
private loadApps() {
this.service.loadApps().subscribe(
result => {
if (result) {
result.push('cloud');
}
this.app = result;
},
errorGetApp => {
this.handleError('Error Retrieving apps.', errorGetApps),
this.spinnerService.hide();
},
() => {
this.siteFilteredOptions = this.appControl.valueChanges.pipe(
startWith(''),
map(value => this.appFilter(value))
);
}
);
}
private loadReults() {
this.logViewerService.loadReults().subscribe(
response => {
this.ReultsList = response;
},
errorRun => {
this.handleError('Error getting Reults.', errorRun),
this.spinnerService.hide();
}
);
}
private loadControls() {
this.service.getQuery().subscribe(
response => {
this.loadControls(response);
},
error => {
this.handleError('Error getting query.', error),
this.spinnerService.hide();
},
() => this.resultsComponent.loadResults(paramQueryId)
)
} else {
this.loadPreferences();
}
private loadPreferences() {
this.logViewerService.getPreferences().subscribe(
response => {
this.loadPreferences(response);
this.buildQuery();
},
error => {
this.handleError('Error getting Preferences.', error);
this.spinnerService.hide();
}
);
}