ЈаваСцрипт ЦаллБацк функција

У овом упутству ћете научити о функцијама повратног позива ЈаваСцрипт помоћу примера.

Функција је блок кода који извршава одређени задатак када се позове. На пример,

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

У горњем програму, вредност низа се преноси као аргумент greet()функцији.

У ЈаваСцрипт-у функцију такође можете проследити као аргумент функцији. Ова функција која се преноси као аргумент унутар друге функције назива се функцијом повратног позива. На пример,

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

Оутпут

 Здраво Петер, ја сам функција повратног позива

У горњем програму постоје две функције. Током позива greet()функције, прослеђују се два аргумента (вредност низа и функција).

callMe()Функција је функција повратног позива.

Предност функције повратног позива

Предност употребе функције повратног позива је та што можете сачекати резултат претходног позива функције, а затим извршити други позив функције.

У овом примеру ћемо 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');

Оутпут

 Здраво Јохн Здраво свет

Као што знате, метода сетТимеоут () извршава блок кода након наведеног времена.

Овде се greet()функција позива након 2000 милисекунди ( 2 секунде). Током овог чекања sayName('John');извршава се. Због тога је Хелло Јохн штампан пре Хелло ворлд.

Горњи код се извршава асинхроно (друга функција; sayName()не чека прву функцију; greet()да се заврши).

Пример: Коришћење функције повратног позива

У горњем примеру, друга функција не чека да прва функција буде завршена. Међутим, ако желите да сачекате резултат претходног позива функције пре извршавања следеће наредбе, можете користити функцију повратног позива. На пример,

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

Оутпут

 Здраво свет Здраво Јохн

У горњем програму, код се извршава синхроно. sayName()Функција је прошло као аргумент у greet()функцији.

setTimeout()Начин извршава greet()функцију тек након 2 секунде. Међутим, sayName()функција чека извршење greet()функције.

Напомена : Функција повратног позива је корисна када морате да сачекате резултат који захтева време. На пример, подаци који долазе са сервера јер треба времена да подаци стигну.

Занимљиви Чланци...