⊗jsSpACCH 160 of 294 menu

JavaScriptдаги callback hell муаммоси

Фароз қилайлик, биз 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); });

Ушбу код билан бир нарса нотўғри. Гap шундаки, расмлар юкланган сари 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 та расмни юклаш ва истисноларни қайта ишлаш бўлсин. Сизда callback hell вазият ҳосил бўлишига ишонч ҳосил қилинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш