एसिंक्रोनस प्रोग्रामिंग जावास्क्रिप्ट की प्रमुख शक्तियों में से एक है, खासकर Node.js में; हालाँकि, चिंताओं के आवश्यक पृथक्करण के कारण, कई अतुल्यकालिक संचालन अक्सर कॉलबैक के माध्यम से किए जाते हैं, और इससे "कॉलबैक नरक" के रूप में जाना जा सकता है। उदाहरण के लिए, ऐसी स्थिति पर विचार करें जहां हम अपने जावास्क्रिप्ट कोड में नेस्टेड कॉलबैक के साथ काम कर रहे हैं, और आइए देखें कि हम प्रॉमिस और एसिंक/प्रतीक्षा संरचना का उपयोग करके इसे कैसे रिफैक्टर कर सकते हैं।
आइए कुछ कोड से शुरुआत करें जो एक सरल उत्पाद प्रबंधन प्रणाली के लिए फ़ाइल संचालन को संभालने के लिए कॉलबैक का उपयोग करता है:
यहां, हमारे पास पढ़ने और फ़ाइल में लिखने के लिए कई अच्छी तरह से नेस्टेड बैककॉल हैं। यह संभवतः उन उदाहरणों में से एक है जिसे आप तब लिखेंगे जब आप कॉलबैक नरक के अंदर गहरे होंगे। अंत में, अधिक संख्या में एसिंक्रोनस ऑपरेशंस के साथ कोड बढ़ेगा और इंडेंटेशन की मात्रा बढ़ने से इसे पढ़ना कठिन हो जाएगा। सेव() विधि में, fs.readFile फ़ंक्शन फ़ाइल को पढ़ता है, और फिर इसका कॉलबैक सामग्री को पार्स करता है और फ़ाइल की सामग्री को फिर से लिखने के लिए fs.writeFile फ़ंक्शन का उपयोग करता है जो दूसरे कॉलबैक में किया जाता है। नेस्टिंग के ऐसे स्तर कोड को "कयामत के पिरामिड" के समान बनाते हैं।
इस कॉलबैक नरक से बचने के लिए, जावास्क्रिप्ट वादे और एसिंक/प्रतीक्षा सिंटैक्स हैं जो कोड को अधिक पठनीय, प्रबंधनीय और डिबगिंग-अनुकूल बनाते हैं।
यहाँ उन्नत संस्करण है:
वादे रैखिक रूप से और कम से कम नेस्टेड संरचनाओं के साथ अतुल्यकालिक संचालन के प्रबंधन को सक्षम करके सहायक होते हैं। एसिंक/प्रतीक्षा पैटर्न कोड की पठनीयता को बढ़ाता है और एसिंक्रोनस ऑपरेशंस को इस तरह से संबोधित करता है जो सिंक्रोनस ऑपरेशंस के करीब दिखता है। विशेष रूप से प्रयास और पकड़ने वाले ब्लॉकों का उपयोग करने से, त्रुटि प्रसंस्करण अधिक पारदर्शी और समझने में आसान हो जाता है जो कोड रखरखाव में योगदान देता है।
जावास्क्रिप्ट में, विशेष रूप से Node.js में, साफ-सुथरे तरीके से कोड लिखते समय कॉलबैक नरक वास्तविक समस्या हो सकती है। प्रॉमिस और एसिंक/वेट की मदद से, भारी नेस्टेड कॉलबैक हेल को एक ही समय में स्वच्छ रैखिक कोड में बदलना संभव है, जिससे त्रुटियों से निपटना आसान हो जाता है। यह न केवल आपके कोड को बेहतर दिखने के लिए बदलता है बल्कि आपको एक बेहतर जावास्क्रिप्ट प्रोग्रामर बनने के सही रास्ते पर भी स्थापित करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3