Введение решенного обещания в сервис

Мне нужно получить некоторую информацию (схему) с сервера, прежде чем я настрою группу сервисов, которые зависят от этой информации.

Мой сервер предоставляет схему, которая определяет различные свойства модели. В моем угловом коде у меня есть сервис, который получает эту схему:

services.factory('schema', function($q, $http) {
    var deferred = $q.defer();
        $http.get('schema/').then(function(response) {
        schema = // some function of response.data
        deferred.resolve(schema);
    }, function() {
        deferred.reject('There was a problem fetching the schema');
    }); 
        return deferred.promise;
});

Я хотел бы внедрить объект схемы, а не обещание, в другие службы, которые зависят от схемы. $ routeProvider позволяет нам сделать это для контроллеров:

app.config(function($routeProvider) {
    $routeProvider.
        when('/', {
            controller: 'SomeCtrl',
            resolve: {
                schema: 'schema'
            },
            ...
        });
});

и это позволяет мне определить SomeCtrl следующим образом:

controllers.controller('SomeCtrl', function($scope, schema) {
    // schema is an object
    ...
});

Но для услуг я должен сделать:

services.factory('SomeService', function(schema) {
    // schema is a promise
    schema.then(function(schema) {
        ...
    });
});

Есть ли способ, которым я могу сделать это?

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

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