[英]Angular Return Observable from subscription
我正在嘗試返回一個 Observable 對象,具體取決於其他服務調用,這是一個簡單的示例:
public getMyObject(): Observalbe<MyObject> {
let myObject;
this.isFeautreEnabled().subscribe(isEnabled=> {
if (isEnabled) {
myObject = this.http.get<MyObject>('domain/path');
} else {
myObject = of();
}
})
return myObject;
}
所以我想從服務中返回 MyObject,如果該功能已啟用(異步調用),否則(在這種情況下為 null)。
這不起作用,因為 isFeatureEnabled 也是異步的。
請注意,我不能將方法簽名更改為異步,因為它也會更改返回類型。
使用switchMap
運算符。
public getMyObject(): Observalbe<MyObject> {
return this.isFeautreEnabled().pipe(
switchMap(isEnabled => isEnabled ? this.http.get<MyObject>('domain/path') : of()),
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.