⊗jsSpACCH 160 of 294 menu

Tatizo la Callback Hell katika JavaScript

Tuseme tunataka kwa kutumia kitendakazi loadImage kupakia picha tatu:

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); });

Kuna kitu kibaya na msimbo huu. Jambo ni kwamba picha zitaongezwa kwenye body kadiri zinavyopakika. Hiyo ni, hakuna anayetuhakikishia kwamba picha zitaongezwa haswa katika mpangilio ambao tunahitaji.

Kuna jambo lingine. Tuseme tunataka kufanya kitu fulani, pale zitakapopakwa picha zote tatu. Katika msimbo wetu hatuwezi hata kukamata wakati huu, kwa sababu picha zote tatu zinapakika kwa kujitegemea.

Sawa, wacha tubadilishe msimbo:

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('picha zote zimepakika'); }); }); });

Tumetatua matatizo yote mawili yaliyoelezwa. Hata hivyo, tumepata lingine badala yake. Kwa sasa, haionekani sana, lakini fikiria jinsi msimbo wetu utakavyoonekana, ikiwa hautakuwa na upakiaji wa picha tatu tu, bali, tuseme, picha 10, pamoja na usindikaji wa isipokuwa. Hatimaye msimbo utakuwa usosomeka kabisa: utata wa msimbo unaongezeka kwa kasi wakati vitendo vya wito wa nyuma vinapolaliana. Hali kama hii inaitwa callback hell - kuzimu ya vitendo vya wito wa nyuma.

Andika upya msimbo ulio hapo juu ili ndani yake iwe na upakiaji wa picha 10 pamoja na usindikaji wa isipokuwa. Hakikisha unapata hali ya callback hell.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa