22
33const pokemonsNumber = Array
44 . from ( Array ( 251 ) . keys ( ) )
5- . map ( number => String ( number + 1 )
6- . padStart ( 3 , '0' ) )
5+ . map ( number => String ( number + 1 ) . padStart ( 3 , '0' ) )
76
8- let loaded = 0
9- const total = pokemonsNumber . length
10- const progressBar = document . querySelector ( 'progress' )
11- const progressPercentage = document . querySelector ( 'span' )
7+ function progressBarScope ( ) {
8+ const progressBar = document . querySelector ( 'progress' )
9+ const progressPercentage = document . querySelector ( 'span' )
10+ const total = pokemonsNumber . length
11+ let loaded = 0
1212
13- function updateProgressbar ( ) {
14- let percentage = 0
15- ++ loaded
16- percentage = Math . floor ( ( loaded * 100 ) / total )
17- progressBar . value = percentage
18- progressPercentage . textContent = percentage + '%'
13+ return ( ) => {
14+ ++ loaded
15+ let percentage = Math . floor ( ( loaded * 100 ) / total )
16+ progressBar . value = percentage
17+ progressPercentage . textContent = percentage + '%'
18+ }
19+ }
20+ const updateProgressBar = progressBarScope ( )
21+
22+ function onError ( pokemonNumber ) {
23+ return ( ) => {
24+ console . error ( 'Pokemon failed ' + pokemonNumber )
25+ loadInOrder ( )
26+ }
1927}
2028
2129function createImageElement ( pokemonNumber ) {
22- const img = new Image ( )
23- img . src = `images/pokemons/${ pokemonNumber } .png`
24- img . addEventListener ( 'load' , updateProgressbar )
25- img . addEventListener ( 'load' , ( ) => console . log ( 'Pokemon Loaded ' + pokemonNumber ) )
26- img . addEventListener ( 'error' , ( ) => console . log ( 'Pokemon failed ' + pokemonNumber ) )
27- document . body . appendChild ( img )
30+ const image = new Image ( )
31+ image . src = `images/pokemons/${ pokemonNumber } .png`
32+ image . addEventListener ( 'load' , updateProgressBar )
33+ image . addEventListener ( 'error' , onError ( pokemonNumber ) )
34+ document . body . appendChild ( image )
2835}
2936
30- pokemonsNumber . forEach ( createImageElement )
37+ pokemonsNumber . forEach ( createImageElement )
0 commit comments