为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

大话西游666 2022-12-18 15:38:58
该组件有变量applicationObs作为观察者:export class OrderDetailsComponent implements OnInit {    public applicationObs: Observable<ApplicationResponse>;         public getSections(): SidebarMenuItem[] {        const fabricApplicationSidebar = fabricApplicationSidebarMenu(this.application); // Here      }}如何传递applicationObs到fabricApplicationSidebarMenu()whenthis.application不是观察者,而是ApplicationResponse.如何在函数中将异步数据作为变量传递?
查看完整描述

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订阅时执行的任何操作。这可能是可取的,也可能不是可取的,具体取决于您的计划和这些功能的作用。


查看完整回答
反对 回复 2022-12-18
?
呼如林

TA贡献1798条经验 获得超3个赞

你想让我做什么?是这样的吗?


this.applicationObs.subscribe(

(applicationResponse: ApplicationResponse) => {

   const fabricApplicationSidebar = fabricApplicationSidebarMenu(applicationResponse); // Here 

});


查看完整回答
反对 回复 2022-12-18
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号