⊗jsSpACCH 160 of 294 menu

JavaScript'te Callback Hell Sorunu

Diyelim ki loadImage fonksiyonuyla üç resim yüklemek istiyoruz:

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

Bu kodla ilgili bir sorun var. Sorun şu ki, resimler yüklendikçe body'ye eklenecekler. Yani, resimlerin tam olarak ihtiyacımız olan sırada ekleneceğinin garantisi yok.

Bir şey daha var. Diyelim ki üç resim de yüklendiğinde bir şey yapmak istiyoruz. Mevcut kodumuzda bu anı yakalayamayız, çünkü üç resim de bağımsız olarak yükleniyor.

Tamam, kodu yeniden düzenleyelim:

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üm resimler yüklendi'); }); }); });

Açıklanan her iki sorunu da çözdük. Ancak, karşılığında başka bir sorun elde ettik. Henüz çok görünür değil ama, on değil de, diyelim on resmin yüklendiği, artı istisna işleme eklendiği bir kodun nasıl görüneceğini hayal edin. Sonuç olarak kod son derece okunaksız hale gelecek: callback'ler iç içe geçtiğinde kod karmaşıklığı çığ gibi büyür. Bu duruma callback hell - callback cehennemi denir.

Verilen kodu, 10 resim yükleme ve istisna işleme içerecek şekilde yeniden yazın. Bir callback hell durumu oluştuğunu gözlemleyin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet