【发布时间】:2014-12-14 17:39:01
【问题描述】:
我有一个过滤器按钮上的手表。当用户点击它时,它会调用观察者。 我需要向服务器发送获取请求。获取响应,保存并立即询问下一个获取请求。一个接一个。
$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);
});
}
});
此代码运行良好,但它在两个控制器中重复。
为了防止重复代码,我建议添加新服务并在其中添加代码。但是,它并没有像我预期的那样做。它不等待第一个请求的答案。 我应该怎么做才能更好地编写它并防止重复代码?
【问题讨论】:
-
你需要它们串联还是并行发送可以?