To simplify my question i did some modifications to the code. I am now able to get the value from the callback function i now want to pass this data into a variable.
After some more test i realized i just needed the AjaxRequest function to return data at the end of the function and declare a variable equal to the AjaxRequest and use a callback function to return its value. Under is my code.
If this solution isn't the most appropriate please comment.
function AjaxRequest(callback) {
var hasErrors = false;
dojo.xhrPost({
url: 'hello',
content: SomeData,
load: function (formErrors) {
//preform some operation
//set hasErrors to true
hasErrors = true;
//if (typeof callback === "function") callback(hasErrors);
},
error: function (e) {
console.log(e + ' page not posted error');
}
});
return hasErrors;
}
function PostInformation() {
try {
var results = AjaxRequest(function (args) {
//console.log('The hasErrors is ' + args);
return args;
});
return results;
} catch (e) {
console.log(e);
}
}
You're calling handleServerResponse
when you send the request, not in the callback. It should be:
var doesErrorsExist = postToServer(function() {
handleServerResponse(containers, function (args) {
return args;
});
});
But this still won't work -- an asynchronous function can never return a value to its caller, because the value won't exist until the operation completes after the function returns.
I haven't tried to figure out the logic of everything you're trying to do, so I don't have a concrete suggestion for how to fix that. I think if you reread the question you linked to, you should get some more insight.