ЈаваСцрипт функције повратног позива - шта су повратни позиви у ЈС-у и како их користити

Ако сте упознати са програмирањем, већ знате шта функције раде и како их користити. Али шта је функција повратног позива? Функције повратног позива су важан део ЈаваСцрипт-а и када схватите како функционирају повратни позиви, постаћете много бољи у ЈаваСцрипт-у.

Дакле, у овом посту бих желео да вам помогнем да разумете шта су функције повратног позива и како их користити у ЈаваСцрипт-у пролазећи кроз неке примере.

Шта је функција повратног позива?

У ЈаваСцрипт-у функције су објекти. Можемо ли објекте проследити функцијама као параметре? Да.

Дакле, функције такође можемо проследити као параметре другим функцијама и позвати их унутар спољних функција. Звучи компликовано? Дозволите ми да то покажем у примеру испод:

function print(callback) { callback(); }

Функција принт () узима другу функцију као параметар и позива је унутра. Ово важи у ЈаваСцрипт-у и зовемо га „повратни позив“. Дакле, функција која се прослеђује другој функцији као параметар је функција повратног позива. Али то није све.

У наставку можете погледати и видео верзију функција повратног позива:

Зашто су нам потребне функције повратног позива?

ЈаваСцрипт покреће код секвенцијално редом одозго надоле. Међутим, постоје случајеви да се код покреће (или мора покренути) након што се нешто друго догоди, а такође не узастопно. То се назива асинхроно програмирање.

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

У ЈаваСцрипт-у начин за стварање функције повратног позива је прослеђивање функције као параметра другој функцији, а затим враћање позива одмах након што се нешто догодило или је неки задатак завршен. Да видимо како ...

Како направити повратни позив

Да бих разумео шта сам горе објаснио, почните са једноставним примером. Желимо да пријавимо поруку на конзолу, али она би требало да буде тамо након 3 секунде.

const message = function() { console.log("This message is shown after 3 seconds"); } setTimeout(message, 3000);

У ЈаваСцрипт постоји уграђена метода која се назива „сетТимеоут“, која позива функцију или процењује израз након датог временског периода (у милисекундама). Дакле, овде се функција „порука“ позива након што прођу 3 секунде. (1 секунда = 1000 милисекунди)

Другим речима, функција поруке се позива након што се нешто догодило (након 3 секунде које су прошле за овај пример), али не и пре. Дакле, функција поруке је пример функције повратног позива.

Шта је анонимна функција?

Алтернативно, функцију можемо дефинисати директно унутар друге функције, уместо да је зовемо. Изгледаће овако:

setTimeout(function() { console.log("This message is shown after 3 seconds"); }, 3000);

Као што видимо, функција повратног позива овде нема име, а дефиниција функције без имена у ЈаваСцрипт-у назива се „анонимна функција“. Ово ради потпуно исти задатак као горе наведени пример.

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

Ако желите, такође можете написати исту функцију повратног позива као ЕС6 функција стрелице, што је новији тип функције у ЈаваСцрипт-у:

setTimeout(() => { console.log("This message is shown after 3 seconds"); }, 3000);

Шта је са догађајима?

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

Click here

Овог пута на конзоли ћемо видети поруку само када корисник кликне на дугме:

document.queryselector("#callback-btn") .addEventListener("click", function() { console.log("User has clicked on the button!"); });

Дакле, овде прво бирамо дугме са његовим ид-ом, а затим додајемо преслушач догађаја методом аддЕвентЛистенер. Потребна су 2 параметра. Први је његов тип, „клик“, а други параметар је функција повратног позива, која записује поруку када се кликне на дугме.

Као што видите, функције повратног позива се такође користе за декларације догађаја у ЈаваСцрипт-у.

Упаковати

Повратни позиви се често користе у ЈаваСцрипт-у и надам се да вам овај пост помаже да разумете шта они заправо раде и како лакше радити с њима. Даље, можете научити о ЈаваСцрипт Промисес-у, што је слична тема коју сам објаснио у свом новом посту.

Ако желите да сазнате више о веб развоју, слободно ме пратите на Иоутубе-у !

Хвала вам за читање!