У меня есть приложение Angular 6, которое позволяет пользователю загружать различные деревья информации из базы данных MySQL.В основном, в пользовательском интерфейсе есть несколько кнопок, которые вызывают следующий метод, когда пользователь щелкает по ним:
getTree(id : number) : Observable <any> {
let url = `${ConfigService.settings.appURL}/data-tree/${id}`;
return this.httpClient.get(url)
.pipe(
map(this.formatTreeData),
catchError(this.handleError)
);
}
Иногда соединение происходит довольно медленно (мы должны протестировать приложение через соединение GPRS) и загружаем однуДерево может занять 5-8 секунд.Я понял, что если пользователь нажимает на другую кнопку до завершения предыдущего вызова, приложение делает еще одну, и возвращаемые данные смешиваются.
Простое решение состоит в том, чтобы заблокировать пользовательский интерфейс, пока вызов не будетзакончил, но мне интересно, есть ли способ отменить текущий вызов и начать новый в этом случае.Есть предложения?
Спасибо!