AngularJs – Promise Chaining

Tutorial AngularJs

von Ardian Shala, 30.04.2016 - update: 19.05.2017
Was ist Promise-Chaining?
Darunter versteht man den verketteten Aufruf mehrerer Callbacks (hier aus einem Service).
Das Aneinanderketten verhindert einen ineinander verschachtelten Aufruf und sorgt somit für einen überschaubaren Code.
Vorraussetzung:
  • AngularJs 1.5.x - link
  • Verständnis für Angular Services + Promisses

Downloads:

Sample

Erstelle einen Service mit folgenden Funktionen

Die dritte Funktion beinhaltet extra ein reject, welches einen Fehler verursachen soll.

app.service("TestService",function($q){
    this.get = function () {
        var deferred = $q.defer();
        deferred.resolve("test 1");
        return deferred.promise;
     }

    this.getTwo = function () {
        var deferred = $q.defer();
        deferred.resolve("test 2");
        return deferred.promise;
    }

    this.getThree = function () {
        var deferred = $q.defer();
        deferred.reject("test 3");
        return deferred.promise;
    }   
});

Verkette die Funktionen

Erstelle einen Controller und rufe jede Funktion mit return auf

app.controller('HomeController', function(TestService) {
    var vm = this;

    TestService.get()
    .then(function(res){
        return TestService.getTwo();
    })
    .then(function(res){
        return TestService.getThree();
    })
    .then(function(res){
        console.log("nicht ");
    })
    .catch(function(err){
        console.error(err);
    });
});

Ergebnis

Die Konsole sollte das result von Funktion 1 und 2 ausgeben und den Fehler Log der 3. Funktion, da wir in der 3. explizit einen Fehler zurückreichen.

#angularjs #chaining #promise #service

Autor: Ardian Shala

Ersteller der Webseite MuchaDev. Selbstständiger IT Constultant für Frontend Technologien.