亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將觀察者變量作為參數傳遞?

如何將觀察者變量作為參數傳遞?

大話西游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 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號