JavaScript atzvanīšanas funkcija

Šajā apmācībā jūs uzzināsit par JavaScript atzvanīšanas funkcijām, izmantojot piemērus.

Funkcija ir koda bloks, kas izsaukuma laikā veic noteiktu uzdevumu. Piemēram,

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

Iepriekš minētajā programmā virknes vērtība tiek nodota kā arguments greet()funkcijai.

JavaScript jūs varat arī nodot funkciju kā argumentu funkcijai. Šo funkciju, kas tiek nodota kā arguments citas funkcijas iekšienē, sauc par atzvanīšanas funkciju. Piemēram,

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

Rezultāts

 Sveiks, Pēter, es esmu atzvanīšanas funkcija

Iepriekš minētajā programmā ir divas funkcijas. Izsaucot greet()funkciju, tiek nodoti divi argumenti (virknes vērtība un funkcija).

callMe()Funkcija ir atzvanīšanas funkcija.

Atzvana funkcijas priekšrocības

Atzvana funkcijas izmantošanas priekšrocība ir tā, ka jūs varat gaidīt iepriekšējā funkcijas izsaukuma rezultātu un pēc tam izpildīt citu funkcijas izsaukumu.

Šajā piemērā mēs izmantosim setTimeout()metodi, lai atdarinātu programmu, kuras izpildei nepieciešams laiks, piemēram, datus, kas nāk no servera.

Piemērs: Programma ar 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');

Rezultāts

 Sveiks Džons Sveika pasaule

Kā jūs zināt, metode setTimeout () pēc noteiktā laika izpilda koda bloku.

Šeit greet()funkcija tiek izsaukta pēc 2000 milisekundēm ( 2 sekundēm). Šīs gaidīšanas laikā sayName('John');tiek izpildīts. Tāpēc Hello John tiek drukāts pirms Hello world.

Iepriekš minētais kods tiek izpildīts asinhroni (otrā funkcija; sayName()negaida pirmās funkcijas izpildi greet()).

Piemērs: atzvanīšanas funkcijas izmantošana

Iepriekš minētajā piemērā otrā funkcija negaida pirmās funkcijas pabeigšanu. Tomēr, ja vēlaties gaidīt iepriekšējā funkcijas izsaukuma rezultātu, pirms tiek izpildīts nākamais paziņojums, varat izmantot atzvanīšanas funkciju. Piemēram,

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

Rezultāts

 Sveika pasaule Sveiks Džon

Iepriekš minētajā programmā kods tiek izpildīts sinhroni. sayName()Funkcija tiek nodots kā arguments pret greet()funkciju.

setTimeout()Metode izpilda greet()funkciju tikai pēc 2 sekundēm. Tomēr sayName()funkcija gaida funkcijas izpildi greet().

Piezīme . Atzvana funkcija ir noderīga, ja jāgaida rezultāts, kas prasa laiku. Piemēram, dati, kas nāk no servera, jo datu saņemšana prasa laiku.

Interesanti raksti...