Мне трудно найти много примеров/руководств для использования наблюдаемых в службе Angular2. Существует материал для привязки html-шаблонов с помощью EventEmitter, но это не похоже на сервис.
Одна из главных движущих тем - это избавиться от Promises в Angular2, но я не могу получить новый синтаксис правильно.
Что я делаю
- У меня есть FirebaseAuth Service, которая может быть добавлена в другую услуг или компонентов.
- У меня есть функция, которая выполняет асинхронный вызов firebase, в моем примере для создания пользователя
- Я хочу вернуть Observable (для замены обещания), который другие службы могут использовать для выполнения других действий, таких как создание профиля при его разрешении.
Я в порядке, если Promises - лучшее решение для этого примера, но я хотел бы выяснить, что такое Наблюдаемый путь.
Моя служба:
/*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?