javascript - Extend Callback with parameters -


assuming have method wrapping jquery ajax method:

function getjson(url, completecallback, alwayscallback, failcallback) {    var newurl = location.protocol + "//" + location.host + url;  $.getjson(newurl).done(function (result) {     if (typeof completecallback == "function") {         completecallback(result);     }                 }).fail(function (jqxhr, textstatus, error) {     if (typeof failcallback == "function") {         failcallback(result);     } else {         alert("request failed " + url + " textstatus:" + textstatus + " error:" + error);     }         }).always(function () {     if (typeof alwayscallback == "function") {         alwayscallback();     }         }); } 

and call dosomething method, internally calls getjson. result getjson callback want pass first parameter of doresume; remaining arguments should passed methods signature.

function dosomething(a, b, c, id) { var url = '/mycontroller/getdata?id=' + id;     getjson(url, doresume(this.result, a, b, c)); }  function doresume(result, a, b, c) { } 

i tried achieve using keyword, result not assigned.

you need pass function not result of invocation

getjson(url, function(result){     doresume(result, a, b, c); }); 

Comments