2 回答

TA貢獻1802條經驗 獲得超6個贊
我建議你換個角度思考這個問題,你真正想要做的是在你的可觀察管道上添加一個新函數。所以我會這樣做:
export class OrderDetailsComponent implements OnInit {
public applicationObs: Observable<ApplicationResponse>;
public getSections(): Observable<SidebarMenuItem[]> {
return applicationObs.pipe(
map(m => fabricApplicationSidebarMenu(m))
);
}
}
這里是在現有的 observable 上添加一個新的管道并返回它。這仍然是異步的,所以它本身不做任何事情。要獲取這些部分,您仍然需要訂閱生成的可觀察對象:
this.getSections().subscribe((s: SidebarMenuItem[]) => {
});
如果您愿意,您也可以使用async管道??催@里
請注意,以上內容將觸發 applicationObs以及fabricApplicationSidebarMenu訂閱時執行的任何操作。這可能是可取的,也可能不是可取的,具體取決于您的計劃和這些功能的作用。

TA貢獻1798條經驗 獲得超3個贊
你想讓我做什么?是這樣的嗎?
this.applicationObs.subscribe(
(applicationResponse: ApplicationResponse) => {
const fabricApplicationSidebar = fabricApplicationSidebarMenu(applicationResponse); // Here
});
添加回答
舉報