Funkcja CallBack JavaScript

W tym samouczku dowiesz się o funkcjach zwrotnych JavaScript przy pomocy przykładów.

Funkcja to blok kodu, który po wywołaniu wykonuje określone zadanie. Na przykład,

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

W powyższym programie wartość ciągu jest przekazywana jako argument do greet()funkcji.

W JavaScript możesz również przekazać funkcję jako argument do funkcji. Ta funkcja, która jest przekazywana jako argument wewnątrz innej funkcji, nazywana jest funkcją zwrotną. Na przykład,

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

Wynik

 Cześć Peter Jestem funkcją oddzwaniania

W powyższym programie są dwie funkcje. Podczas wywoływania greet()funkcji przekazywane są dwa argumenty (wartość ciągu i funkcja).

Ta callMe()funkcja jest funkcją zwrotną.

Zalety funkcji oddzwaniania

Zaletą korzystania z funkcji zwrotnej jest to, że można poczekać na wynik poprzedniego wywołania funkcji, a następnie wykonać kolejne wywołanie funkcji.

W tym przykładzie użyjemy setTimeout()metody do naśladowania programu, którego wykonanie zajmuje dużo czasu, na przykład danych pochodzących z serwera.

Przykład: Program z 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');

Wynik

 Witaj John Witaj świecie

Jak wiadomo, metoda setTimeout () wykonuje blok kodu po określonym czasie.

Tutaj greet()funkcja jest wywoływana po 2000 milisekundach ( 2 sekundach). Podczas tego oczekiwania sayName('John');jest wykonywany. Dlatego Hello John jest drukowane przed Hello world.

Powyższy kod jest wykonywany asynchronicznie (druga funkcja; sayName()nie czeka na zakończenie pierwszej funkcji greet()).

Przykład: użycie funkcji oddzwaniania

W powyższym przykładzie druga funkcja nie czeka na zakończenie pierwszej funkcji. Jeśli jednak chcesz poczekać na wynik poprzedniego wywołania funkcji przed wykonaniem następnej instrukcji, możesz użyć funkcji zwrotnej. Na przykład,

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

Wynik

 Witaj świecie Witaj John

W powyższym programie kod jest wykonywany synchronicznie. sayName()Funkcja jest przekazywana jako argument do greet()funkcji.

setTimeout()Sposób realizuje greet()funkcję tylko po 2 sekundy. Jednak sayName()funkcja czeka na wykonanie greet()funkcji.

Uwaga : Funkcja wywołania zwrotnego jest pomocna, gdy musisz czekać na wynik, który zajmuje trochę czasu. Na przykład dane pochodzące z serwera, ponieważ ich dotarcie wymaga czasu.

Interesujące artykuły...