Метод запускается в фоновом режиме - PullRequest
0 голосов
/ 09 июля 2019

У меня есть 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();
        }
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...