Angular - Лучшая практика для получения данных из метода Factory

Я ищу некоторую информацию о лучшем способе извлечения данных из локального файла JSON и обработки ответа. После просмотра переполнения стека у меня возникли смешанные мысли, так как я видел несколько способов сделать одно и то же (хотя нет объяснения, почему один может или не может быть предпочтительным).

По сути, у меня есть приложение Angular, которое использует фабрику для извлечения данных из файла JSON; Затем я жду ответа для разрешения в моем контроллере, прежде чем использовать его в моем HTML-файле, как показано ниже:

Опция 1

Фабрика:

comparison.factory('Info', ['$http', function($http) {
var retrievalFile = 'retrievalFile.json';

return {
 retrieveInfo: function() {
  return $http.get(retrievalFile);
 }
}

}]);

контроллер:

comparison.controller('comparisonController', ['$scope', 'Info', function($scope, Info) {

Info.retrieveInfo().then(function(response) {
  $scope.info = response.data;
});

}]);

Мое главное утверждение состоит в том, чтобы выяснить, когда лучше дождаться ответа, или если это даже имеет значение. Я играю над идеей, чтобы фабрика вернула выполненное обещание и жду, пока контроллер также получит данные. На мой взгляд, лучше всего абстрагироваться от извлечения всех данных из контроллера и на фабрику, но я не уверен, распространяется ли это на ожидание фактических данных, которые будут возвращены внутри самой фабрики. Имея это в виду, я не понимаю, стоит ли выбирать вариант 1 или вариант 2, и буду очень признателен за отзывы более опытных / квалифицированных разработчиков!

Вариант 2

Фабрика:

comparison.factory('Info', ['$http', function($http) {
var retrievalFile = 'retrievalFile.json';

return {
  retrieveInfo: function() {
    return $http.get(retrievalFile).then(function(response) {
      return response.data;
    });
  }
}

}]);

контроллер:

comparison.controller('comparisonController', ['$scope', 'Info', function($scope, Info) {

Info.retrieveInfo().then(function(response) {
  $scope.info = response;
});

}]);

Спасибо за любой вклад / предложения заранее!

Ответы на вопрос(3)

Ваш ответ на вопрос