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

setTimeout kilka pytań

Object Storage Arubacloud
0 głosów
317 wizyt
pytanie zadane 15 kwietnia 2017 w JavaScript przez sebeks Mądrala (5,300 p.)
1. czy setTimeout powinien być zawsze używany z jakąś zmienną nawet przy pojedynczym prostym zastosowaniu?

2. czy setTimeout po czasie sam się wyłącza/kasuje czy trzeba go skasować przez clearTimeout by nie zużywał pamięci czy czasu procesora?

3. jeśli używam setTimeout do wywołania funkcji a w niej jest rekurencja i kolejny (lub kolejne, np. kilka razy) setTimeout to uruchamia się jeden czy kilka timerów?

4. czy da się połączyć jakoś :) koniec czasu setTimeout (bo wykonano funkcję) z AddEventListener("ended",..)?

2 odpowiedzi

+2 głosów
odpowiedź 15 kwietnia 2017 przez Magicone Nałogowiec (45,100 p.)

1. Nie, nie musi. Jedyny warunek to podanie zmiennej będącej funkcją.

2. Timery nie stanowią jakiegoś problemu jeśli chodzi o wydajność, poczytaj o eventloopie jak chcesz wiedzieć więcej.

3. Timer wywołuje po określonym czasie następny timer.

4. Jeśli chodzi ci o "wyścig" wywołania obu zdarzeń to tak, najfajniej to zrobić przez Promise.race.

komentarz 15 kwietnia 2017 przez sebeks Mądrala (5,300 p.)
ad.4 jeśli używam setTimeout rekurencyjnie np, 3 razy, to żeby po trzecim razie wywołać funkcję, ale nie wiem czy dobrze kombinuje, bo może trzeba zrobić po prostu iterację zmiennej i prostego ifa?
komentarz 15 kwietnia 2017 przez Magicone Nałogowiec (45,100 p.)
No tak, takie coś brzmi teoretycznie rozsądnie o ile zmienna będzie siedziała w odpowiednim scope i nie przecieknie tam, gdzie nie powinna.
1
komentarz 16 kwietnia 2017 przez Comandeer Guru (601,110 p.)
ad. 2. Jasne, że stanowią. Dużą liczbą długotrwających timerów można z powodzeniem zablokować event loop.
komentarz 16 kwietnia 2017 przez Magicone Nałogowiec (45,100 p.)
Same timery nie zapychają eventloopa, kolejkują się i uruchamiają w konkretnym cyklu, a przekazywana do wykonania funkcja to już inna sprawa. ;)
2
komentarz 16 kwietnia 2017 przez Comandeer Guru (601,110 p.)
No spoko… ale timery bez callbacka są jak seks bez partnerki :P
+1 głos
odpowiedź 15 kwietnia 2017 przez kap Stary wyjadacz (11,620 p.)
1. Nie

2. clearTimeout jest potrzebny tylko do przerywania timouta zanim się zakończy, resztą nie musisz się przejmować

3. Każde wywołanie setTimeout tworzy nowy timer, aczkolwiek jeśli wywołujesz je rekurencyjnie to na raz aktywny jest tylko jeden - poprzedni się kończy, nowy się rozpoczyna.

4. No możesz w callbacku timeouta wyemitować event.

Podobne pytania

0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 8 maja 2018 w JavaScript przez TheFunny Gaduła (3,420 p.)
0 głosów
2 odpowiedzi 239 wizyt
0 głosów
0 odpowiedzi 216 wizyt
pytanie zadane 31 marca 2018 w JavaScript przez KrosFire Nowicjusz (210 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 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!

...