Promise (osnove)

Uvod


pyramid of doom

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:

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!
            });
        });
    });
});

Continue reading…