कोणीय ट्यूटोरियल में पाइप और टैप विधि क्या हैं? [बन्द है]


129

मैं https://angular.io पर ट्यूटोरियल का अनुसरण कर रहा हूं , और मुझे प्रलेखन खोजने में परेशानी हो रही है; विशेष रूप से तरीकों pipeऔर के लिए tap। मुझे https://angular.io या http://reactivex.io/rxjs/ पर कुछ भी नहीं मिल रहा है ।

मेरी समझ यह है pipeऔर tapदोनों ही तरीके हैं Observable, जिन्हें आरएक्सजेएस से आयात किया जा रहा है, सही है? वे क्या करने वाले हैं?

क्या ये तरीके एंगुलर का हिस्सा हैं? ये दो विधियाँ क्या करती हैं?


55
मुझे यह अजीब लगता है जब उपयोगकर्ता उचित प्रश्न पूछते हैं, एक उचित उत्तर प्राप्त करते हैं, और अभी तक mods के लिए अस्पष्ट हैं कि ओपी क्या पूछ रहा है: डी - क्यों यह "ऑफ-टॉपिक" है?
पॉल स्ट्रूपेइकिस

जवाबों:


107

आप सही हैं, प्रलेखन में उन तरीकों का अभाव है। हालाँकि जब मैंने rxjs रिपॉजिटरी में खोदा, तो मुझे टैप (यहां पेस्ट करने के लिए बहुत लंबा) और पाइप ऑपरेटरों के बारे में अच्छी टिप्पणियां मिलीं :

  /**
   * Used to stitch together functional operators into a chain.
   * @method pipe
   * @return {Observable} the Observable result of all of the operators having
   * been called in the order they were passed in.
   *
   * @example
   *
   * import { map, filter, scan } from 'rxjs/operators';
   *
   * Rx.Observable.interval(1000)
   *   .pipe(
   *     filter(x => x % 2 === 0),
   *     map(x => x + x),
   *     scan((acc, x) => acc + x)
   *   )
   *   .subscribe(x => console.log(x))
   */

संक्षेप में:

पाइप : एक श्रृंखला में कार्यात्मक ऑपरेटरों को एक साथ सिलाई करने के लिए उपयोग किया जाता है। इससे पहले कि हम बस कर सकें observable.filter().map().scan(), लेकिन चूंकि हर आरएक्सजेएस ऑपरेटर एक ऑब्जर्वेबल की विधि के बजाय एक स्टैंडअलोन फ़ंक्शन है, इसलिए हमें pipe()उन ऑपरेटरों की एक श्रृंखला बनाने की आवश्यकता है (ऊपर उदाहरण देखें)।

टैप : अवलोकन किए गए डेटा के साथ साइड इफेक्ट्स कर सकते हैं लेकिन किसी भी तरह से स्ट्रीम को संशोधित नहीं करते हैं। पूर्व में कहा जाता है do()। आप इसके बारे में सोच सकते हैं कि यदि समय के साथ अवलोकन योग्य था, तो tap()इसके बराबर होगा Array.forEach()


4
उत्तर और लिंक के लिए धन्यवाद। मेरी समस्या का एक हिस्सा यह है कि मैं कोणीय के लिए नया हूं, और मुझे यकीन नहीं है कि कौन से तरीके कोर जावास्क्रिप्ट या नोड.जेएस या आरएक्सजेएस या कोणीय का हिस्सा हैं। आपके उत्तर ने मुझे यह स्पष्ट करने में मदद की। धन्यवाद।
बेन रूबिन

3
@BenRubin मैं आपको सलाह दूंगा कि आप टूल सीखना शुरू करने से पहले देशी JS को ठीक से सीखें। यह उपकरण को समझने में बहुत आसान बना देगा और यह वास्तव में क्या करता है (और यह जानने के लिए कि उपकरण बनाम मूल भाग क्या है)।
मैग्नस एरिकसन

20
5.5 के बाद से और पाइप करने योग्य (एक बार lettable के रूप में जाना जाता है) ऑपरेटरों की शुरूआत, doजैसा कि नाम दिया गया है tap... संक्षेप में, यह एक गड़बड़ है। github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
लुका

3
filterजैसे काम करता है Array.filter- केवल नियम को पूरा करने वाले मूल्यों को रखता है (इस मामले में 2 से विभाज्य); map(फिर से Array.map) हर मूल्य को बदलता है (इस मामले में यह खुद को जोड़ता है); scanसबसे दिलचस्प है और यहाँ एक अच्छी व्याख्या है: learnrxjs.io/operators/transformation/scan.html
डैनियल कुकल

1
लग रहा है जैसे स्कैन कम हो
latj
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.