2016-07-30 13 views
0

Ich habe eine eckige Fabrik und einen Controller im Format unten. Ich rufe registerfreie Kurse an, die die Firebase-Datenbank aktualisieren. Im Firebase-Handbuch heißt es jedoch, dass update() ein Promise zurückgeben kann, mit dem Sie wissen können, wann der Schreibvorgang für die Datenbank festgeschrieben wurde. In meinem Fall kann es möglich sein, dass das Update nicht begangen wird, aber ich will es fangen. Ich versuche diesen Code, aber es funktioniert jetzt.Firebase Update Versprechen Ergebnis

.controller(...){ 
CourseFact.RegisterFreeCourses(...).then(function(value){ 
        ...success 
       }).catch(function (e) { 
        ...fail 
          }); 
        }) 
        } 
    .factory('CourseFact'... 
    { 
      return { 
       RegisterFreeCourses:{ 
        updates[.../...] = postDataPlayer; 

        return firebase.database().ref().update(updates); 
       } 
      } 
    } 

Wie kann ich es beheben oder gibt es ein besseres Beispiel?

+0

Vielleicht statt fangen eine andere anonyme Funktion versuchen so: dann (Erfolg, Fehler); Funktion Erfolg (Antwort) {} Funktion Fehler (Antwort) {} – vodich

+0

Was meinst du, es funktioniert nicht? bitte auch den rufcode anzeigen ... –

+0

@vodich danke es hat funktioniert –

Antwort

0

Fehler Antwort ist bereits in Versprechen Kette, so dass Sie es nicht fangen müssen. Sie können nur Erfolg und Fehlerfunktion angeben, und sie werden aufgerufen, sobald das Versprechen gelöst ist/abgelehnt

.then(successCallback, errorCallback); 
function successCallback(response){ 
    //do something 
} 
function errorCallback(error){ 
    //do something else 
} 
Verwandte Themen