У меня часы на кнопке фильтра. Когда пользователь нажимает на него, он обращается к наблюдателю. Мне нужно отправить запрос на сервер. Получите ответ, сохраните его и сразу запросите следующий запрос на получение. По одному.
$scope.$watch('dataService.getValue()', function (newValue, oldValue) {
if (newValue !== oldValue) {
var selectedValue = $scope.dataFilterService.getValue();
$scope.httpService.getFilteredData(selectedValue).then(function (response) {
var filteredData = response.data;
$scope.httpService.getFilteredData2(selectedValue ).then(function (response) {
var filteredData2 = response.data;
$scope.httpService.getData3().then(function (response) {
var filteredData3 = response.data;
$scope.httpService.getData4().then(function (response) {
var filteredData4= response.data;
$scope.httpService.getData5().then(function (response) {
var filteredData5= response.data;
$scope.dataToMapService.init(filteredData, filteredData2 , filteredData3, filteredData4, filteredData5);
}, function (error) {
$scope.errorService.handleError(error);
});
}, function (error) {
that.errorService.handleError(error);
});
}, function (error) {
that.errorService.handleError(error);
});
}, function (error) {
that.errorService.handleError(error);
});
}, function (error) {
that.errorService.handleError(error);
});
}
});
Этот код работает нормально, однако дублируется в двух контроллерах.
Для предотвращения дублирования кода я предложил добавить новую услугу и в ней код. Однако это не так, как я ожидал. Не дожидаясь ответа на первый запрос. Что я должен сделать, чтобы написать его лучше и предотвратить дублирование кода?