2 回答

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();

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)
);
添加回答
舉報