несколько `.then ()` на одно обещание angularjs - все используют _original_ данные

Я пишу приложение angularjs, опираясь на обещания, и хотя оно работает, мне интересно, смогу ли я сделать это более оптимально.

В начале кода я создаю обещание, которое выполняет выборку некоторых данных. Когда это будет сделано, я хочу запустить несколько функций, которые все используют эти данные. Функции прикреплены к несвязанным частям приложения, поэтому я не знаю, в каком порядке они привязаны к обещанию. Их также не нужно делать по порядку.

app.service("Fetch", function ($q){
    return function() {
        var def = $q.defer();
        somelibrary.asynccall(function(error, data){ //callback
            if (error) def.reject(error);
            else def.resolve(data);
        });
        return def.promise;
    };
});

app.controller("ctrl", function ($scope, Fetch) {
    var prom = Fetch();

    //somewhere:
    prom.then(function(data){$scope.var1 = data["VAR1"];});
    //somewhere else:
    prom.then(function(data){$scope.var2 = data["VAR2"]});
});

Основным недостатком здесь является то, что позжеthens выполняются только тогда, когда предыдущие завершены, что здесь не обязательно.

Также мне нужно добавитьreturn data внутри каждогоfunction(data){...}иначе следующееthen() не имеетdata имеется в наличии.

Нет ли другого способа сделать это, более подходящего для этой ситуации?

РЕДАКТИРОВАТЬ: как упомянуто @ Jfriend00, я ошибся; фактически обе функции выполняются параллельно, как только обещание успешно выполнено, и они не связаны друг с другом и, следовательно, не зависят друг от друга. Спасибо за вашу помощь

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

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