⊗jsSpACCH 160 of 294 menu

जावास्क्रिप्ट में कॉलबैक हेल की समस्या

मान लीजिए कि हम फ़ंक्शन का उपयोग करके loadImage तीन छवियों को लोड करना चाहते हैं:

loadImage('img1.png', function(image, err) { document.body.append(image); }); loadImage('img2.png', function(image, err) { document.body.append(image); }); loadImage('img3.png', function(image, err) { document.body.append(image); });

इस कोड में कुछ गड़बड़ है। बात यह है कि छवियाँ body में जोड़ दी जाएंगी जैसे-जैसे वे लोड होती हैं। यानी कोई हमें गारंटी नहीं देता कि छवियाँ जोड़ी जाएंगी उसी क्रम में जो हमें चाहिए।

और भी कुछ है। मान लीजिए कि हम कुछ करना चाहते हैं जब सभी तीनों छवियाँ लोड हो जाएंगी। हमारे कोड में हम बस नहीं कर पाएंगे इस क्षण को पकड़ना, क्योंकि सभी तीन छवियाँ स्वतंत्र रूप से लोड होती हैं

ठीक है, कोड को फिर से बनाते हैं:

loadImage('img1.png', function(image1, err1) { document.body.append(image1); loadImage('img2.png', function(image2, err2) { document.body.append(image2); loadImage('img3.png', function(image3, err3) { document.body.append(image3); console.log('सभी छवियाँ लोड हो गई हैं'); }); }); });

हमने वर्णित दोनों समस्याओं को हल कर दिया। हालाँकि, बदले में हमें एक और समस्या मिली। अभी तक यह बहुत ज़्यादा नहीं दिख रही है, लेकिन कल्पना करें कि हमारा कोड कैसा दिखेगा यदि इसमें तीन नहीं, बल्कि, मान लीजिए, दस छवियों को लोड करना हो, और साथ ही अपवादों का प्रसंस्करण भी जोड़ा जाए। परिणामस्वरूप कोड बन जाएगा अत्यधिक अपठनीय: कोड की जटिलता हिमस्खलन की तरह बढ़ती है जब कॉलबैक एक दूसरे में नेस्टेड होते हैं। ऐसी स्थिति को callback hell कहा जाता है - कॉलबैक का नरक।

दिए गए कोड को इस तरह फिर से लिखें कि इसमें 10 छवियों को लोड करना शामिल हो और साथ ही अपवादों का प्रसंस्करण भी हो। सुनिश्चित करें कि आपको कॉलबैक हेल की स्थिति का सामना करना पड़ रहा है।

हिन्दी
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें