mehrere `.then ()` s auf einem Winkel versprechen - alle verwenden _original_ Daten

Ich schreibe eine App von anglejs, die auf Versprechungen beruht, und obwohl sie funktioniert, frage ich mich, ob ich sie optimaler machen könnte.

Am Anfang des Codes erstelle ich ein Versprechen, mit dem einige Daten abgerufen werden sollen. Wenn dies erledigt ist, möchte ich mehrere Funktionen ausführen, die alle diese Daten verwenden. Die Funktionen sind an unabhängige Teile der App angehängt, sodass ich nicht weiß, in welcher Reihenfolge sie an das Versprechen angehängt sind. Sie müssen auch nicht nacheinander ausgeführt werden.

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"]});
});

Der Hauptnachteil hierbei ist, dass der späterethens werden nur ausgeführt, wenn die vorhergehenden beendet sind, was hier nicht erforderlich ist.

Auch muss ich hinzufügenreturn data in jedemfunction(data){...}ansonsten folgendesthen() hat das nichtdata verfügbar.

Gibt es nicht einen anderen Weg, der für diese Situation besser geeignet ist?

BEARBEITEN: wie von @ jfriend00 erwähnt, habe ich mich geirrt; Tatsächlich laufen beide Funktionen parallel, sobald das Versprechen erfolgreich erfüllt wurde, und sie sind nicht verkettet und daher nicht voneinander abhängig. Danke für Ihre Hilfe

Antworten auf die Frage(2)

Ihre Antwort auf die Frage