• 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

Object Storage Arubacloud
0 głosów
299 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 imklau Nałogowiec (42,090 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,130 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 540 wizyt
pytanie zadane 26 kwietnia 2021 w JavaScript przez molik Użytkownik (950 p.)
0 głosów
1 odpowiedź 3,041 wizyt
pytanie zadane 20 lutego 2018 w JavaScript przez sosick Nowicjusz (160 p.)
0 głosów
1 odpowiedź 231 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez lastavenger Obywatel (1,060 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...