I have no idea what\'s going on here and was hoping someone could help, I\'m sure it\'s something easy going on that I\'m just missing.
I have a function in javascri
I realize this is an older post, but a solution for me was to use complete:[delegate]
rather than success
. This ensures that the callback
is complete.
You can't do it like that. Remember, the "A" in AJAX means "Asynchronous". The callback function you provide to $.post()
will execute well after GetTotalSize()
executes and returns.
You'll need to restructure your code to accommodate this. I can't be specific in my recommendation because I don't know what the rest of your code looks like, but here's a possibility.
$.post("Handlers/GetTotal.ashx", {id : $("#hID").val()}, function(data)
{
doSomethingWithTotalSize( data.toString() );
});
function doSomethingWithTotalSize( totalSize )
{
// whatever
}
Peter is absolutely right, but you can force the $.ajax method to work synchronously by passing async: false
.
Try this
function GetTotalSize(callback) {
$.post("Handlers/GetTotal.ashx", {id : $("#hID").val()}, function(outputData) {
callback(outputData);
});
}
function DoSomething(data)
{
//....
}
GetTotalSize(DoSomething);
The problem is that you are returning i
outside of the callback function. Basically when you return i
, its contents don't exist yet, and won't exist until the server returns the data to your callback function.