I have an AJAX function that returns a JS object. however when i assign a var to the function i get undefined. Debugging in FireBug, everything is fine, except when i try and assign the result to the var tester
here is my code...
function AllBidData(HighestBid,MinimumBid,HighestProxyBid) {
return {
HighestBid: HighestBid,
MinimumBid: MinimumBid,
HighestProxyBid: HighestProxyBid
};
}
function GetAllBidData() {
$.ajax({
type: "POST",
dataType: "json",
url: "/VehicleAuction/GetAllBidData",
data: { AuctionID: AuctionID, UserID: UserID }
}).done(function (msg) {
var BidDate = new AllBidData(msg.HighestBid, msg.MinimumBid, msg.HighestProxyBid);
return BidDate;
});
}
var tester = GetAllBidData();
//why is tester is undefined?
UPDATE & SOLUTION - So this is the way i have solved this problem - using deferred objects
function GetAllBidData() {
return $.ajax({
type: "POST",
dataType: "json",
url: "/VehicleAuction/GetAllBidData",
data: { AuctionID: AuctionID, UserID: UserID }
});
}
function AllBidData(data) {
return {
HighestBid: data.HighestBid,
MinimumBid: data.MinimumBid,
HighestProxyBid: data.HighestProxyBid
};
}
var tester = null;
tester = GetAllBidData().done(AllBidData);