में एचटीपी कॉल को कैसे श्रृंखलाबद्ध करें I Angular2 और Http Observable में नया हूं। मेरे पास एक घटक है जो एचटीपी सेवा को कॉल करता है और अवलोकन योग्य देता है। मैं उस पर्यवेक्षक की सदस्यता लेता हूं और यह ठीक काम करता है।Angular2
अब, मैं चाहता हूं कि उस घटक में, पहली एचटीपी सेवा को कॉल करने के बाद, अगर कॉल सफलता हो, तो अन्य एचटीपी सेवा को कॉल करें और उस अवलोकन को वापस कर दें। इसलिए, यदि पहली कॉल सफलता नहीं है तो घटक उस अवलोकन योग्य लौटाता है, इसके विपरीत, दूसरी कॉल का अवलोकन करता है।
तो सवाल यह है कि एचटीपी कॉल श्रृंखला का सबसे अच्छा तरीका क्या है? क्या कोई शानदार तरीका है, उदाहरण के लिए मोनैड की तरह?
import 'rxjs/add/operator/mergeMap';
तो यहाँ है कि कैसे आप दो कॉल श्रृंखला:
this.http.get('./customer.json')
.map((res: Response) => res.json())
.mergeMap(customer => this.http.get(customer.contractUrl))
.map((res: Response) => res.json())
.subscribe(res => this.contract = res);
कुछ और
पाया जा सकता है के साथ कोणीय 2.0 (बीटा 0) निम्नलिखित की आवश्यकता है: आयात 'rxjs/जोड़/ऑपरेटर/नक्शा'; आयात 'rxjs/add/operator/mergeMap' आयात करें; –
हालांकि यह पूरी तरह से निष्पादित करता है। जब भी मैं मार्ग पर फिर से जाता हूं http कॉल को अतिरिक्त रूप से 2 बार निकाल दिया जाता है। ngOnInit() { काउंटर 1 = 0, counter2 = 0; console.log ('MyBiraComponent ngOnInit'); uk = this.us.get() दें; this.u = uk.map (व्यक्ति => { console.log ('लाइन 45:', ++ counter1); वापसी person.id; }) flatMap (आईडी => { console.log (। 'लाइन 48:', ++ काउंटर 2); इस.bu.get (आईडी) को वापस करें; }) सदस्यता लें (res => { console.log (res); }); } ngOnDestroy() { this.u.unsubscribe(); } – Prabhat
ने इसे यहां एक प्रश्न के रूप में पोस्ट किया है http://stackoverflow.com/questions/41087885/chained-rx-calls-called-multiple-times – Prabhat