簡體   English   中英

Angular 從訂閱返回 Observable

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM