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
});
添加回答
举报