„JavaScript“ skambinimo funkcija

Šioje pamokoje su pavyzdžių pagalba sužinosite apie „JavaScript“ atgalinio skambinimo funkcijas.

Funkcija yra kodo blokas, kuris atlieka tam tikrą užduotį, kai iškviečiamas. Pavyzdžiui,

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

Pirmiau pateiktoje programoje eilutės reikšmė perduodama kaip argumentas greet()funkcijai.

„JavaScript“ taip pat galite perduoti funkciją kaip argumentą funkcijai. Ši funkcija, perduodama kaip argumentas kitos funkcijos viduje, vadinama atgalinio skambinimo funkcija. Pavyzdžiui,

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

Rezultatas

 Sveiki, Peter, esu atgalinio ryšio funkcija

Pirmiau pateiktoje programoje yra dvi funkcijos. Skambinant greet()funkcijai, perduodami du argumentai (eilutės reikšmė ir funkcija).

callMe()Funkcija yra skambinimo funkcijas.

Atgalinio skambučio funkcijos nauda

Atšaukimo funkcijos naudojimo pranašumas yra tas, kad galite palaukti ankstesnio funkcijos iškvietimo rezultato ir tada atlikti kitą funkcijos iškvietimą.

Šiame pavyzdyje mes ketiname naudoti setTimeout()metodą, kad imituotume programą, kurios vykdymui reikia laiko, pavyzdžiui, duomenis, gaunamus iš serverio.

Pavyzdys: programa su 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');

Rezultatas

 Sveiki, John Sveiki, pasauli

Kaip žinote, metodas setTimeout () po nurodyto laiko įvykdo kodo bloką.

Čia greet()funkcija iškviečiama po 2000 milisekundžių ( 2 sekundžių). Šio laukimo metu sayName('John');įvykdoma. Štai kodėl „Hello John“ spausdinamas prieš „Hello world“.

Minėtas kodas vykdomas asinchroniškai (antroji funkcija; sayName()nelaukia pirmosios funkcijos; greet()bus baigta).

Pavyzdys: skambinimo funkcijos naudojimas

Ankstesniame pavyzdyje antroji funkcija nelaukia, kol pirmoji funkcija bus baigta. Tačiau jei norite palaukti ankstesnio funkcijos iškvietimo rezultato, kol bus įvykdytas kitas sakinys, galite naudoti atgalinio skambinimo funkciją. Pavyzdžiui,

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

Rezultatas

 Sveikas pasaulis Sveikas Jonas

Minėtoje programoje kodas vykdomas sinchroniškai. sayName()Funkcija perduodama kaip argumentą į greet()funkciją.

setTimeout()Metodas vykdo greet()funkciją tik po 2 sekundžių. Tačiau sayName()funkcija laukia funkcijos vykdymo greet().

Pastaba : atgalinio ryšio funkcija yra naudinga, kai reikia laukti rezultato, kuriam reikia laiko. Pavyzdžiui, duomenys gaunami iš serverio, nes reikia daug laiko, kol gaunami duomenys.

Įdomios straipsniai...