Я бы посоветовал вам подумать об этом немного по-другому, на самом деле вы хотите добавить новую функцию в свой наблюдаемый канал. поэтому я бы сделал что-то вроде этого:
export class OrderDetailsComponent implements OnInit {
public applicationObs: Observable<ApplicationResponse>;
public getSections(): Observable<SidebarMenuItem[]> {
return applicationObs.pipe(
map(m => fabricApplicationSidebarMenu(m))
);
}
}
Здесь мы добавляли новый канал к существующему наблюдаемому и возвращали его. это все еще asyn c, поэтому сам по себе ничего не делает. Чтобы получить разделы, вам все равно необходимо подписаться на полученный наблюдаемый объект:
this.getSections().subscribe((s: SidebarMenuItem[]) => {
});
Вы также можете потенциально использовать канал async
, если хотите. См. Здесь
Обратите внимание, что приведенное выше приведет к запуску applicationObs и независимо от того, что fabricApplicationSidebarMenu
делает при подписке. Это может быть, а может и не быть желательным, в зависимости от того, что вы планируете делать и что делают эти функции.