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.
Javascript
How can i get PostInformation to return args?
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');
}
});
}
function PostInformation() {
try {
AjaxRequest(function (args) {
console.log('The hasErrors is ' + args);
return args;
});
} catch (e) {
console.log(e);
}
}
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.
You're calling
handleServerResponse
when you send the request, not in the callback. It should be: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.