Ответ 1
Вам не нужно возвращать обещание в этом случае, потому что вы используете обратный вызов. Обратные вызовы и promises являются двумя концами спектра. Вы можете выполнить то, что хотите, просто с этим.
Если вы хотите использовать обратный вызов, вы можете оставить свой код контроллера.
this.myFunction= function(callback) {
var url = rootURL + "path1/path2/service.json";
$http.get(url).then(function(response) {
callback(response.data);
});
}
Или, если вы хотите использовать promises
this.myFunction= function() {
var url = rootURL + "path1/path2/service.json";
return $http.get(url).then(function(response) {
return response.data;
});
}
DataService.myFunction().then(function(data) {
if(data.statusText !== "OK"){
$scope.$worked = false;
} else {
$scope.$worked = true;
}
});