Funcția JavaScript CallBack

În acest tutorial, veți afla despre funcțiile de apel invers JavaScript cu ajutorul unor exemple.

O funcție este un bloc de cod care efectuează o anumită sarcină atunci când este apelată. De exemplu,

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

În programul de mai sus, o valoare șir este transmisă ca argument către greet()funcție.

În JavaScript, puteți trece o funcție ca argument către o funcție. Această funcție care este transmisă ca argument în interiorul altei funcții se numește funcție de apel invers. De exemplu,

 // 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);

Ieșire

 Bună Peter, sunt funcția de apel invers

În programul de mai sus, există două funcții. În timpul apelării greet()funcției, sunt transmise două argumente (o valoare șir și o funcție).

callMe()Funcția este o funcție de apel invers.

Beneficiul funcției de apel invers

Avantajul utilizării unei funcții de apel invers este că puteți aștepta rezultatul unui apel de funcție anterior și apoi puteți executa un alt apel de funcție.

În acest exemplu, vom folosi setTimeout()metoda pentru a imita programul care necesită timp pentru executare, cum ar fi datele provenite de la server.

Exemplu: Program cu 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');

Ieșire

 Bună, John Bună ziua lume

După cum știți, metoda setTimeout () execută un bloc de cod după timpul specificat.

Aici, greet()funcția este apelată după 2000 de milisecunde ( 2 secunde). În timpul acestei așteptări, sayName('John');este executat. De aceea Hello John este tipărit înainte de Hello world.

Codul de mai sus este executat asincron (a doua funcție; sayName()nu așteaptă prima funcție; greet()să se finalizeze).

Exemplu: Utilizarea unei funcții de apel invers

În exemplul de mai sus, a doua funcție nu așteaptă finalizarea primei funcții. Cu toate acestea, dacă doriți să așteptați rezultatul apelului funcției anterioare înainte ca următoarea instrucțiune să fie executată, puteți utiliza o funcție de apel invers. De exemplu,

 // 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);

Ieșire

 Bună ziua Bună ziua John

În programul de mai sus, codul este executat sincron. sayName()Funcția este trecut ca un argument la greet()funcția.

setTimeout()Metoda execută greet()funcția numai după 2 secunde. Cu toate acestea, sayName()funcția așteaptă executarea greet()funcției.

Notă : Funcția de apel invers este utilă atunci când trebuie să așteptați un rezultat care necesită timp. De exemplu, datele provenite de la un server, deoarece este nevoie de timp pentru a ajunge datele.

Articole interesante...