我有這種Observable,我可以很容易地使用async模板上的管道。
leadChanged$: Observable<LeadModel>;
this.leadChanged$ = this.leadsDataService.leadChanged$.pipe(
map((res) => ({
...res,
alert: { ...res.alert, transcript: highlightKeywordsLeadFunction(this.lead) },
}))
);
但是由于額外的邏輯,現在我需要像這樣寫上面:邏輯是這樣的res?.isManualLead。你知道如何在沒有subscribehere 的情況下使用它嗎?即我也想在async這里使用管道。
leadChanged: LeadModel;
this.leadsDataService.leadChanged$
.subscribe((res) => {
if (res?.isManualLead) {
this.leadChanged = {
...res,
};
} else {
this.leadChanged = {
...res,
alert: { ...res.alert, transcript: highlightKeywordsLeadFunction(this.lead) },
};
}
});
uj5u.com熱心網友回復:
map 運算子內部的條件怎么樣?
this.leadChanged$ = this.leadsDataService.leadChanged$.pipe(
map(res => res?.isManualLead
? { ...res }
: { ...res, alert: { ...res.alert, transcript: highlightKeywordsLeadFunction(this.lead) } }
),
);
uj5u.com熱心網友回復:
您可以根據條件訂閱第一個或第二個 observable sing iif rxjs 運算子
import { iif, of } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
...
this.leadsDataService.leadChanged$.pipe(
mergeMap((res) => iif(() => res?.isManualLead, of({ ...res }), of(anotherValue)))
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312543.html
上一篇:每當我嘗試從控制臺構建一個新的ionic專案angular時,它都會給我,npmERR!無法讀取未定義的屬性(讀取“isServer”)
