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

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

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

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

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

2 回答

?
呼喚遠(yuǎn)方

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

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


service.FirstFunction().pipe( 

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

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

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

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


service.FirstFunction().pipe( 

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

  switchMap(service.secondFunction.bind(service))

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

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


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


service.FirstFunction().pipe( 

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

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

  tap(this.Updatedata.bind(this))

).subscribe();


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

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

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


service.FirstFunction().pipe(

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

).subscription(

  (x) => this.Updatedata(x)

);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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