Кажется, что это должен быть довольно распространенный паттерн, поэтому я надеюсь, что кто-то может помочь.
Я пытаюсь раскрыть Observable "Things" через службу Angular.Моему сервису необходимо сначала получить список вещей, а затем прослушать новые.Поэтому мне нужно сделать два разных запроса на обслуживание, но я пытаюсь обернуть их оба в одну наблюдаемую вещь, чтобы компонент-потребитель не беспокоился о внутренних компонентах.
Итак, выглядитчто-то вроде этого:
export class MyService {
constructor(private commService: CommService){}
get things(): Observable<Things[]> {
// how can I get the initial list of things, then listen for updates?
//THIS DOESN'T WORK
return merge(commService.getAllInitialThings(), commService.listenToThingAdded());
}
}
export class CommService{
getAllInitialThings(): Observable<Things[]> { //etc }
listenToThingAdded(): Observable<Thing> { //etc }
}
Я сделал несколько попыток использования concat и merge, но я не знаю, как
- Убедитесь, что getThings () завершается первым
- Обновите свойство вещи, поскольку оно является наблюдаемым
Обратите внимание, что listenToThingAdded может никогда не произойти, но мне все равно нужно будет вернуть первоначальный список вещей.