第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在最后鏈接一個(gè) observable 、一個(gè)常規(guī)同步函數(shù)和另一個(gè) observable

如何在最后鏈接一個(gè) observable 、一個(gè)常規(guī)同步函數(shù)和另一個(gè) observable

倚天杖 2023-07-29 13:43:47
我想利用pipe一個(gè)可觀察的命令和鏈接,處理訂閱中的輸出數(shù)據(jù),然后運(yùn)行一個(gè)函數(shù)來轉(zhuǎn)換數(shù)據(jù),然后將結(jié)果輸入到一個(gè)新的可觀察函數(shù)。我試圖將函數(shù)與管道鏈接起來,switchMap但我不確定如何提升并能夠在兩個(gè)可觀察量之間插入轉(zhuǎn)換函數(shù)service.FirstFunction().pipe(       switchMap((info) => this.Transform(info),switchMap((data) => service.secondFunction(data))  ) .subscription((x)=> this.Updatedata(x));this.transform是一個(gè)常規(guī)函數(shù),而不是一個(gè)可觀察的函數(shù)
查看完整描述

2 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

看起來this.Transform沒有返回可觀察值,所以switchMap這里不需要。你可以直接使用map:


service.FirstFunction().pipe( 

  map((info) => this.Transform(info),

  switchMap((data) => service.secondFunction(data))

).subscribe((x)=> this.Updatedata(x));

另外,您可以通過傳入函數(shù)來簡(jiǎn)化代碼:


service.FirstFunction().pipe( 

  map(this.Transform.bind(this)),

  switchMap(service.secondFunction.bind(service))

).subscribe(this.Updatedata.bind(this));

您必須綁定,因?yàn)楹瘮?shù)綁定到一個(gè)對(duì)象。如果函數(shù)中沒有使用 this,則可以跳過綁定工作。


順便說一句,為了簡(jiǎn)化訂閱工作,您還可以在此處使用 Tap:


service.FirstFunction().pipe( 

  map(this.Transform.bind(this)),

  switchMap(service.secondFunction.bind(service)),

  tap(this.Updatedata.bind(this))

).subscribe();


查看完整回答
反對(duì) 回復(fù) 2023-07-29
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

你很接近了。您不需要首先switchMap轉(zhuǎn)換數(shù)據(jù)。它可以在單個(gè)switchMap.


service.FirstFunction().pipe(

  switchMap(info => service.secondFunction(this.Transform(info)))

).subscription(

  (x) => this.Updatedata(x)

);


查看完整回答
反對(duì) 回復(fù) 2023-07-29
  • 2 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)