2016-09-04 4 views
35

Ich versuche, meinen Kopf um Observablen zu wickeln. Ich liebe die Art und Weise, wie Observable die Entwicklungs- und Lesbarkeitsprobleme löst. Wie ich gelesen habe, sind die Vorteile immens.Convert Versprechen zu beobachtbaren

Observables auf http und Sammlungen scheinen einfach zu sein. Wie kann ich etwas in ein beobachtbares Muster umwandeln?

Dies ist von meiner Service-Komponente, um die Authentifizierung bereitzustellen. Ich würde es vorziehen, dass dies wie andere http-Dienste in Angular2 funktioniert - mit Unterstützung für Daten-, Fehler- und Completion-Handler.

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(firebaseUser) { 
// do something to update your UI component 
// pass user object to UI component 
}).catch(function(error) { 
// Handle Errors here. 
var errorCode = error.code; 
var errorMessage = error.message; 
// ... 
}); 

Jede Hilfe hier würde sehr geschätzt werden. Die einzige alternative Lösung, die ich hatte, war EventEmitter zu erstellen. Aber ich denke, das ist eine schreckliche Art und Weise der Dinge in Service-Seite zu tun

Antwort

69

try this:

var subscription = Observable.fromPromise(firebase.auth().createUserWithEmailAndPassword(email, password)); 
subscription.subscribe(firebaseUser => /* Do anything with data received */, 
         error => /* Handle error here */); 

können Sie kompletten Bezug auf fromPromise Operator here

+25

'Import 'rxjs/add/beobachtbare/fromPromise' gefunden ; ' –

+5

' importieren {Observable} von "rxjs/Observable"; ':) – Luckylooke