A в AJAX обозначает асинхронный. Таким образом, вызов немедленно возвращается, и как только он завершается, вызывается обратный вызов.
Итак, просто измените свой код, чтобы использовать обратный вызов:
function getGantt(requestNumber, callback) {
var ganttObject;
$.ajax({
type: "POST",
dataType: 'json',
url: "get_gantt.php",
data: {request_number: requestNumber},
success: function(returnValue){
callback(returnValue);
}
});
}
$(function() {
var requestNumber = $('#request_number').text();
var ganttObject = getGantt(requestNumber, function(ganttObject) {
console.log(ganttObject);
});
});
Кстати, я также удалил этот материал parseJSON - установка dataType в json делает работу и является менее грязной.