• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Opóźnienie wywoływania elementów z tablicy - setInterval

Fiszki IT
Fiszki IT
0 głosów
96 wizyt
pytanie zadane 8 września 2017 w JavaScript przez Alterwar Dyskutant (7,650 p.)
zamknięte 8 września 2017 przez Alterwar

Witam,

mógłby mi ktoś wytłumaczyć gdzie leży problem, bo chyba czegoś nie rozumiem.

Mam tablicę np. 4 liter. Ustawiam setInterval na 3s, i chcę aby co 3 sekundy wyrzucił kolejny element tablicy. Obecnie wyrzuca co 3sekundy ale wszystkie elementy jednocześnie.

spl = ['a', 'b', 'c', 'd']
    for(let i = 0; i<spl.length; i++){

          setInterval(function(){
          
           console.log(spl[i]);  
          
          }, 3000);
    }

Gdzie leży problem? W moim przekonaniu powinno to tak działać, leci for, wywołuje funkcję wyświetla literę i znowu.

komentarz zamknięcia: rozwiązane

2 odpowiedzi

0 głosów
odpowiedź 8 września 2017 przez Noemi Nałogowiec (42,280 p.)
wybrane 8 września 2017 przez Alterwar
 
Najlepsza

W moim przekonaniu powinno to tak działać, leci for, wywołuje funkcję wyświetla literę i znowu.

Tylko, że zanim minie 3 sekundy to Twoje for już dawno zdąży przelecieć po tych elementach i zapamięta sobie console.log() x4 i po 3 sekundach wyświetli Ci je wszystkie.

Mam nadzieję, że na takim poziomie angielski nie będzie przeszkodą, bo mógłbyś wykorzystać rozwiązanie ze stackoverflow

komentarz 8 września 2017 przez Alterwar Dyskutant (7,650 p.)
Dzięki, tym sposobem działa
0 głosów
odpowiedź 8 września 2017 przez kosaa Stary wyjadacz (14,170 p.)
Twoj program dziala w duzym uproszczeniu tak:

console.log(spl[1]);
console.log(spl[2]);
console.log(spl[3]);
console.log(spl[4]);

czekaj 3 sekundy

console.log(spl[1]);
console.log(spl[2]);
console.log(spl[3]);
console.log(spl[4]);

czekaj 3 sekundy

i tak dalej, najpierw uzywac 4 razy setInterval a potek kazdy oddzielno czeka na wykonanie
komentarz 8 września 2017 przez Alterwar Dyskutant (7,650 p.)
No tak, wiem że tak działa, ale co zrobić, żeby działał tak jak mówiłem? Jak zrobię na odwrót czyli wrzucę petle w setInterval to efekt będzie taki sam

Podobne pytania

+1 głos
3 odpowiedzi 95 wizyt
pytanie zadane 26 kwietnia w JavaScript przez molik Użytkownik (820 p.)
0 głosów
1 odpowiedź 1,709 wizyt
pytanie zadane 20 lutego 2018 w JavaScript przez sosick Nowicjusz (160 p.)
0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez lastavenger Obywatel (1,060 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

84,758 zapytań

133,559 odpowiedzi

295,986 komentarzy

56,012 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...