Uvod
U JavaScript-u postoji izraz za deo koda sa ugnježdenim callback funkcijama pod nazivom “callback hell” ili “pyramid of doom”. Debagovanje takvog programskog koda pa čak i samo razumevanje je veoma otežano. Sa ES2015 standardom je došla nova syntax-a pod nazivom “promise” (srp. obećanje), koja sa svojim API-jem obezbedjuje bolji i pregledniji način za organizovanje callback funkcija. Ovo se naručito primećuje u radu sa asinhronim operacijama jer sa promisima sintaksa veoma liči na standardnu sinhronu sintaksu.
Primer – “callback hell”
Najpoznatija i najčešća primena callback funkcija je “hendlovanje” akcija nakon izvršenog dogadjaja. Upravo je “hendlovanje” medjusobno zavisnih dogadjaja najčešće uzrok “callback hell-a”. U ovom primeru je prikazan izgled takvog koda:
1 2 3 4 5 6 7 8 9 |
callEndpoint("api/getidbyusername/nekoime", function (result) { callEndpoint("api/getifolowersbyid/" + result.userID, function (result) { callEndpoint("api/nekidrugizahtev/" result.folowers, function (result) { callEndpoint("api/nekidrugizahtev/" result.folowers, function (result) { // uhh ovde je već haos! }); }); }); }); |