⊗jsSpACILL 161 of 294 menu

Asynkron bildladdning i loop i JavaScript

Låt sökvägarna till bilderna lagras i en array:

let arr = ['img1.png', 'img2.png', 'img3.png'];

Vi kan ladda dessa bilder i en loop:

for (let path of arr) { loadImage(path, function(image, err) { document.body.append(image); }); }

Koden blev vacker och utan callback hell, men vi är tillbaka till våra två problem: ordningen på bilderna är inte garanterad och det är omöjligt att fånga ögonblicket när alla bilder har laddats.

Och det finns ingen lösning i denna situation: det är omöjligt att starta en loop, använda en asynkron funktion inuti den, och sedan fånga ögonblicket när alla funktioner i loopen är klara. Antingen behöver du inte fånga det ögonblicket och koden ovan kommer att passa dig, eller så är du välkommen till callback hell.

Men du bör inte bli upprörd - en lösning på problemet är möjlig genom promises, som vi kommer att studera i de följande lektionerna.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa