• 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

VPS Starter Arubacloud
0 głosów
293 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 513 wizyt
pytanie zadane 26 kwietnia 2021 w JavaScript przez molik Użytkownik (950 p.)
0 głosów
1 odpowiedź 2,975 wizyt
pytanie zadane 20 lutego 2018 w JavaScript przez sosick Nowicjusz (160 p.)
0 głosów
1 odpowiedź 228 wizyt
pytanie zadane 7 listopada 2017 w JavaScript przez lastavenger Obywatel (1,060 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...