javascriptjquerycallback

How to get returned a value by a callback function


Here is my code

function save_current_side(current_side) {
    var result;
    var final = a.b({
        callback: function (a) {
            console.log(a); // its working fine here 
            return a;
        }
    });
}

where b is the synchronous function. I am calling the above function anywhere in the code

var saved =  save_current_side(current_side);

The variable saved is undefined. How to get returned valued by callback function


Solution

  • If b is a synchronous method, you simply store the value in a variable, so that you can return it from the save_current_side function instead of from the callback function:

    function save_current_side(current_side) {
      var result;
      a.b({
        callback: function (a) {
          result = a;
        }
      });
      return result;
    }
    

    If b is an asynchronous method, you can't return the value from the function, as it doesn't exist yet when you exit the function. Use a callback:

    function save_current_side(current_side, callback) {
      a.b({
        callback: function (a) {
          callback(a);
        }
      });
    }
    
    save_current_side(current_side, function(a){
      console.log(a);
    });