Хорошо, поэтому я на самом деле использую сервисы Google для расчета некоторых картографических маршрутов. Я поместил его в один сервис и код:
const directionsService = new google.maps.DirectionsService();
directionsService.route(route, (data, status) => {
if (status === 'OK') {
this.storage.routeValue = data.routes[0].legs[0].duration.value;
}
});
}
Я передаю данные этому сервису с разных страниц, и все, что он делает, это данные ( lat and lng) рассчитывает маршрут и возвращает его обратно. Проблема, с которой я сталкиваюсь, заключается в том, что я также делаю несколько других вещей на моей текущей странице, где я изменяю локальные значения на некоторые переменные. Итак, у меня есть что-то вроде:
//This calls the code from above and pass the data from my page to the service:
this.googledirectionsService.route(data);
///I now have:
this.isStarted = true;
this.map.showPath();
Поэтому я вызываю другую функцию и после этого меняю локальную переменную. Но я не знаю, когда и будет ли сделан другой сервис. Что я могу использовать для улучшения этого кода? Наблюдаемые? Мне нужно знать, когда и как код завершил работу с моей службой googledirectionsService, и затем удалить другой код с моей текущей страницы. Я могу поместить переменную publi c в обратный вызов маршрута в сервисе и затем проверить мою текущую страницу, но проблема в том, что это может занять 2se c, 5se c .. и более или даже упасть, если данные неправильно, поэтому Мне нужно сначала узнать, каков результат моей службы, а затем продолжить с другим кодом.