2017-02-14 4 views
5

मैं अवलोकनों का उपयोग करके कोणीय 2 में एकाधिक http कॉल करना चाहता हूं। प्रत्येक पर्यवेक्षण पूर्व पर्यवेक्षण पर निर्भर है। अगर मैं आंतरिक पर्यवेक्षक को वापस करना चाहता हूं, तो मैं मूल घटक में इसकी सदस्यता ले सकता हूं), यह कैसे किया जा सकता है?एंगुलर 2 रिटर्न इनर वेरिएबल्स के आंतरिक पर्यवेक्षक

यहां मैंने कोशिश की है, लेकिन मैं मूल घटक में देखने योग्य की सदस्यता लेने में सक्षम नहीं था।

बाल घटक:

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

आपका प्रश्न को समझने के लिए जब से तुम ज्यादा संदर्भ नहीं दिया है कठिन है, लेकिन यह लग रहा है आप observable3() का परिणाम observablesFn() से वापस जाने के लिए प्राप्त करने के लिए देख रहे हैं। मौजूदा return कथन आपके नेस्टेड आंतरिक अज्ञात फ़ंक्शन से लौट रहा है, न कि आपके बाहरी दायरे से। मुझे लगता है कि आप इन पंक्तियों के साथ कुछ और करना चाहते हैं।

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

यह नहीं बल्कि अपने नेस्टेड भीतरी समारोह से observablesFn() से वापस आ जाएगी।

.subscribe के बजाय .map का उपयोग करना आवश्यक है, क्योंकि यह सदस्यता के बजाय एक अवलोकन योग्य लौटाता है।