Невозможно определить правильный EventEmitter или наблюдаемый синтаксис в Angular2 Services
Мне трудно найти много примеров / руководств по использованию наблюдаемых в сервисе Angular2. Есть вещи для связывания HTML-шаблонов сEventEmitter но это не кажется правильным для службы.
Одна из главных движущих тем - уход от Promises в Angular2, но я не могу понять, правильный ли новый синтаксис.
Что я делаю
у меня естьСервис FirebaseAuth которые могут быть внедрены в другие услуги или компоненты.У меня есть функция, которая делает асинхронный вызов Firebase, в моем примере, чтобы создать пользователяЯ хочу вернутьНаблюдаемый (чтобы заменить обещание) что другие службы могут использовать для других целей, таких как создание профиля, когда это решаетсяЯ в порядке, если обещания являются лучшим решением для этого примера, но я хотел бы выяснить, чтоНаблюдаемый путь является.
Мой сервис:
/*DS Work on firebase Auth */
import {Injectable} from 'angular2/angular2';
@Injectable()
export class FirebaseAuth {
ref = new Firebase('https://myfirebase.firebaseio.com');
//check if user is logged in
getAuth(): any {
return this.ref.getAuth();
}
//register a new user
createUser(user: any): Promise<any> {
return new Promise((resolve, reject) => {
this.ref.createUser(user, function(error, userData) {
if (error) {
reject(error);
console.log('Error creating user:", error');
} else {
resolve(userData);
console.log('Successfully created user account with uid:', userData.uid);
}
})
})
}
};
Как бы я переписал это, чтобы использовать Observable и / или EventEmitter?