JavaScript funkcija povratnog poziva

U ovom ćete uputstvu uz primjere naučiti o funkcijama povratnog poziva JavaScripta.

Funkcija je blok koda koji izvršava određeni zadatak kada se pozove. Na primjer,

 // function function greet(name) ( console.log('Hi' + ' ' + name); ) greet('Peter'); // Hi Peter

U gore navedenom programu vrijednost niza se prenosi kao argument greet()funkciji.

U JavaScriptu funkciju možete proslijediti i kao argument funkciji. Ova funkcija koja se prosljeđuje kao argument unutar druge funkcije naziva se povratna funkcija. Na primjer,

 // function function greet(name, callback) ( console.log('Hi' + ' ' + name); callback(); ) // callback function function callMe() ( console.log('I am callback function'); ) // passing function as an argument greet('Peter', callMe);

Izlaz

 Bok Peter, ja sam funkcija povratnog poziva

U gornjem programu postoje dvije funkcije. Tijekom pozivanja greet()funkcije prenose se dva argumenta (vrijednost niza i funkcija).

callMe()Funkcija je funkcija povratnog poziva.

Prednost funkcije povratnog poziva

Prednost upotrebe funkcije povratnog poziva je ta što možete pričekati rezultat prethodnog poziva funkcije, a zatim izvršiti drugi poziv funkcije.

U ovom ćemo primjeru setTimeout()metodom oponašati program kojem je potrebno vrijeme za izvršavanje, poput podataka koji dolaze s poslužitelja.

Primjer: Program s setTimeout ()

 // program that shows the delay in execution function greet() ( console.log('Hello world'); ) function sayName(name) ( console.log('Hello' + ' ' + name); ) // calling the function setTimeout(greet, 2000); sayName('John');

Izlaz

 Pozdrav John Pozdrav svijete

Kao što znate, metoda setTimeout () izvršava blok koda nakon navedenog vremena.

Ovdje se greet()funkcija poziva nakon 2000 milisekundi ( 2 sekunde). Tijekom ovog čekanja sayName('John');izvršava se. Zbog toga je Hello John tiskan prije Hello world.

Gornji se kôd izvršava asinkrono (druga funkcija; sayName()ne čeka prvu funkciju; greet()da se završi).

Primjer: Korištenje funkcije povratnog poziva

U gornjem primjeru druga funkcija ne čeka da prva funkcija bude dovršena. Međutim, ako želite pričekati rezultat prethodnog poziva funkcije prije izvršavanja sljedeće naredbe, možete koristiti funkciju povratnog poziva. Na primjer,

 // Callback Function Example function greet(name, myFunction) ( console.log('Hello world'); // callback function // executed only after the greet() is executed myFunction(name); ) // callback function function sayName(name) ( console.log('Hello' + ' ' + name); ) // calling the function after 2 seconds setTimeout(greet, 2000, 'John', sayName);

Izlaz

 Pozdrav svijetu Pozdrav John

U gornjem programu kôd se izvršava sinkrono. sayName()Funkcija je prošao kao argument u greet()funkciji.

setTimeout()Metoda izvršava greet()funkcije samo nakon 2 sekunde. Međutim, sayName()funkcija čeka izvršenje greet()funkcije.

Napomena : Funkcija povratnog poziva korisna je kad morate pričekati rezultat koji zahtijeva vrijeme. Na primjer, podaci koji dolaze s poslužitelja jer treba vremena da podaci stignu.

Zanimljivi članci...