मैं थोड़ा उलझन में हूं कि कैसे और कब नेस्टेड एसिंक पाइप कोणीय 2 टेम्पलेट्स में हल होते हैं, और दस्तावेज़ीकरण अभी एक महान जगह पर नहीं है, इसलिए मुझे उम्मीद है कि एसओ पर कोई मदद कर सकता है।नेस्टेड कोणीय 2 Async पाइप कैसे हल करते हैं?
मेरे पास Observable.of(myArray).delay(2000)
के माध्यम से एक सेवा से लौटा एक बहुत ही सरल आरएक्सजेएस ऑब्जर्जेबल है - देरी समय के साथ क्या चल रहा है यह दिखाने में मदद करने के लिए है।
मेरे टेम्पलेट में, मैं सिर्फ नमूदार एक enclosing <p>
टैग में ऊपर लौटे नियंत्रित करने के लिए पर एक async पाइप जब यह दिखाया गया है का उपयोग कर रहा है, और फिर कि <p>
टैग के अंदर वापस आ सरणी लंबाई दिखाने की कोशिश:
<p *ngIf="!(lists | async)">Waiting for lists...</p>
<p *ngIf="lists | async">We have lists! How many? => {{(lists | async)?.length}}</p>
तो जब आप इस लोड, "सूचियों के लिए इंतज़ार कर" प्रदर्शित किया जाता है, 2 सेकंड बाद हम मिल "हम सूचियों है!" भाग, अपेक्षित के रूप में, लेकिन फिर हलचल सरणी लंबाई को हल करने और प्रदर्शित करने के लिए आंतरिक एसिंक पाइप के लिए 2 सेकंड लगते हैं।
मैं वही समय दिखाने के लिए लंबाई कैसे प्राप्त कर सकता हूं जो पर्यवेक्षी पर निर्भर करता है जो इसके मूल्य को वापस कर रहा है? या यह एसिंक पाइप के लिए सिर्फ एक अच्छा उपयोग मामला नहीं है, और मुझे इसके बजाय मेरे घटक में subscribe()
चाहिए?
धन्यवाद - समझ में आता है। मेरे अवलोकन पर 'देरी() 'का उपयोग करके मुझे' * ngIf' कैसे काम करता है) के बारे में कुछ और सीखने दें। – chucknelson
शायद यह भी उल्लेख करना उपयोगी है कि स्रोत देखने योग्य नहीं है * साझा * किसी भी तरह से एक महत्वपूर्ण भूमिका निभाता है कुंआ। मूल परिदृश्य में 'सूचियों' अवलोकन योग्य दो बार सब्सक्राइब किया जाता है (एक बार 'ngIf' के लिए, फिर' लंबाई' के लिए), और प्रत्येक सदस्यता पर धारा देरी सहित नई शुरू होती है। यदि 'सूचियों' को साझा किया गया था, या फिर से चलाया गया था, या गर्म किया गया था, तो दूसरी सदस्यता को बिना किसी देरी के, अंतिम सरणी मान तुरंत मिलेगा। – superjos