I have the following type of structure:
(function(){
var objects = [];
$('button.one').on('click', function(){
  fetchObjects = function(objects) {
    $.post("/fetchObjects")
      .done(function(data){
        objects = data;
        console.log(objects.length);
      });
  }
  fetchObjects(objects)
});
$('button.two').on('click', function(){
  console.log(objects.length);
});
})();
You can see I have a variable objects that is local to this function. Initially its empty. When I click button.one I wish to populate objects with the returned value from some ajax request. It appears to work, however when clicking button.two, the objects variable is still an empty array.
Why isn't objects available in the jQuery callback?
I've also tried this approach but with the same results:
function callback(data) {
  facilities = data
}
$.post("/fetchObjects")
.done(function(data){
  callback(data);
});
What am I missing here? Please don't tell me to make "objects" global.
 
     
    