2017-02-14 10 views
5

Observablesを使用してAngular2で複数のhttp呼び出しを行いたいとします。各観測対象は、観測可能な以前の観測対象に依存します。内部の観測可能な要素を返す場合は、親要素でサブスクライブすることができます)、どうすればこのことができますか?Angular2 Return Inner Observable ofネストされたオブザーバブル

ここで私が試したことはありますが、親コンポーネントのオブザーバブルを購読できませんでした。

子コンポーネント:

observablesFn(){ 
    observable1().subscribe(data1 => { 
     observable2().subcribe(data2 => { 
      //I want to return this observable (before subscription b/c I want to subscribe in the parent component) 
      return observable3(); 
     }) 
    } 
} 

答えて

7

あなたの質問は、あなたが多くのコンテキストを与えられていないので、理解するのは難しいですが、あなたはobservablesFn()から復帰するobservable3()の結果を得るために探しているように聞こえます。既存のreturnステートメントは、最も外側のスコープではなく、ネストされた内部無名関数から戻ってきます。私はあなたがこれらの行に沿ってもっと何かをやろうとしていると思います。

observablesFn(){ 
    return observable1().map(data1 => { 
    return observable2(data1).map(data2 => { 
     return observable3(data1, data2); 
    }); 
    }); 
} 

これはネストされた内部関数ではなく、observablesFn()から戻ります。

.subscribeではなく、.mapを使用する必要があります。これはサブスクリプションではなく、観測可能な値を返すためです。

関連する問題