如何将观察者变量作为参数传递?

该组件有变量applicationObs作为观察者:


export class OrderDetailsComponent implements OnInit {

    public applicationObs: Observable<ApplicationResponse>;

    

     public getSections(): SidebarMenuItem[] {

        const fabricApplicationSidebar = fabricApplicationSidebarMenu(this.application); // Here 

     }

}

如何传递applicationObs到fabricApplicationSidebarMenu()whenthis.application不是观察者,而是ApplicationResponse.


如何在函数中将异步数据作为变量传递?


大话西游666
浏览 123回答 2
2回答

呼啦一阵风

我建议你换个角度思考这个问题,你真正想要做的是在你的可观察管道上添加一个新函数。所以我会这样做:export class OrderDetailsComponent implements OnInit {&nbsp; &nbsp; public applicationObs: Observable<ApplicationResponse>;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;public getSections(): Observable<SidebarMenuItem[]> {&nbsp; &nbsp; &nbsp; &nbsp; return applicationObs.pipe(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map(m => fabricApplicationSidebarMenu(m))&nbsp; &nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp;}}这里是在现有的 observable 上添加一个新的管道并返回它。这仍然是异步的,所以它本身不做任何事情。要获取这些部分,您仍然需要订阅生成的可观察对象:this.getSections().subscribe((s: SidebarMenuItem[]) => {});如果您愿意,您也可以使用async管道。看这里请注意,以上内容将触发 applicationObs以及fabricApplicationSidebarMenu订阅时执行的任何操作。这可能是可取的,也可能不是可取的,具体取决于您的计划和这些功能的作用。

呼如林

你想让我做什么?是这样的吗?this.applicationObs.subscribe((applicationResponse: ApplicationResponse) => {&nbsp; &nbsp;const fabricApplicationSidebar = fabricApplicationSidebarMenu(applicationResponse); // Here&nbsp;});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript