2
2
3
3
const pokemonsNumber = Array
4
4
. from ( Array ( 251 ) . keys ( ) )
5
- . map ( number => String ( number + 1 )
6
- . padStart ( 3 , '0' ) )
5
+ . map ( number => String ( number + 1 ) . padStart ( 3 , '0' ) )
7
6
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
12
12
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
+ }
19
27
}
20
28
21
29
function 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 )
28
35
}
29
36
30
- pokemonsNumber . forEach ( createImageElement )
37
+ pokemonsNumber . forEach ( createImageElement )
0 commit comments