Cauta rapid aici ↑

Cum sa rulezi mai multe functii la un anumit interval de timp

Modalitatea prin care putem rula sau executa mai multe functii la un anumit interval de timp una dupa cealanta nu reprezinta un proces foarte complex si nici greu. Este chiar simplu de realizat din moment ce veti intelege logica. Nu va mai tin in suspans si va explic cum m-am gandit eu sa fac sa rulez mai multe functii.

Asa cum se poate vedea in exemplu de mai jos, primul lucru pe care l-am facut este sa creez functiile ce vor fi apelate. Se poate vedea cu ochiul liber ca aceste functii sunt apelate in interiorul altor functii anonime (ce se apeleaza singure) si adaugate intr-un array sub forma unui string ce ulterior cu ajutorul functiei constructor Function() le vom converti inapoi in functii.

Probabil va intrebati de ce am procedat in acest fel si nu am lasat corpul functiei → func1 ← (de exemplu) in interiorul functiei anonime din locul unde aceasta este apelata. Puteam face acest lucru foarte simplu, insa nu am facut asta din mai multe motive. Primul este ca este un string (si din ce am incercat nu ar fi functionat altfel) iar string-urile trebuiesc declarate pe o singura linie si desi puteam continua corpul functiei pe o singura linie, script-ul nostru nu ar fi aratat bine. Al doilea motiv este ca pot scrie corpul functiilor foarte bine si usor de inteles si identat iar cel de al trei-lea motiv este ca arata foarte bine acest script.

Sub acest array am creat o functie anonima care se apeleaza singura si in interiorul acesteia am declarat doua variabile. Prima variabila este un integer cu valoarea zero ce urmeaza a fi incrementat la un anumit interval ori de cate ori urmatoarea variabila → int ← ce are ca valoare metoda setInterval() se va executa. Dupa cum vedeti, metoda setInterval() contine doua argumente. Primul este o functie anonima (callback) iar cel de al doilea este timpul in milisecunde de executie al functiilor declarate prima data in script.

In interiorul functiei callback avem o conditie if care se va executa in momentul cand valoarea variabilei integer este mai mare decat lungimea array-ul cu functii anonime sub forma de string si va opri executia metodei setInterval().

Sub aceasta conditie if avem linia de cod prin care vom transforma functia noastra sub forma de string (din array) intr-o functie reala si mai apoi o vom apela. Ultima linie de cod reprezinta incrementarea variabilei integer.

Avantajul functiei anonime (care face toata munca) este ca nu mai necesita modificari daca array-ul cu functii este marit sau micsorat. Cel mai important lucru este ca in acest fel putem sa scriem cate linii de cod vrem in functiile → func1...5 ← si sa modificam doar intr-un singur loc timpul sau intervalul de executie al functiilor.