⊗jsSpACCH 160 of 294 menu

Problemi i callback hell në JavaScript

Le të supozojmë se duam të ngarkojmë tre imazhe duke përdorur funksionin 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); });

Ka diçka që nuk shkon me këtë kod. Çështja është që imazhet do të shtohen në body ndërsa ngarkohen. Kjo do të thotë se askush nuk na garanton që imazhet do të shtohen pikërisht në atë rend që ne dëshirojmë.

Ka edhe diçka tjetër. Le të supozojmë se duam të bëjmë diçka kur të tre imazhet të jenë ngarkuar. Në kodin tonë thjesht nuk do të jemi në gjendje të kapim këtë moment, pasi të tre imazhet ngarkohen në mënyrë të pavarur.

Në rregull, le të rishkruajmë kodin:

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('të gjitha imazhet janë ngarkuar'); }); }); });

Ne i zgjidhëm të dy problemet e përshkruara. Megjithatë, në këmbim kemi marrë një tjetër. Tani për tani ende nuk duket shumë, por imagjinone se si do të dukej kodi ynë nëse do të kishte ngarkim jo të tre, por, le të themi, dhjetë imazhesh, plus do të shtohej menaxhimi i përjashtimeve. Si rezultat, kodi do të bëhej jashtëzakonisht i pa lexueshëm: kompleksiteti i kodit rritet në mënyrë shpërbëhese me mbivendosjen e callback-ëve. Kjo situatë quhet callback hell - ferr i callback-ëve.

Rishkruani kodin e dhënë në mënyrë që në të të ketë ngarkim të 10 imazheve plus menaxhim të përjashtimeve. Sigurohuni që ju përfundoni në një situatë callback hell.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo