Это потому, что функция success
выполняется асинхронно, потому что это AJAX-вызов. Поэтому нет смысла возвращать значение в обратном вызове AJAX, потому что оно может выполняться много раз после возвращения содержащей функции.
Чтобы исправить это, вам нужно будет манипулировать результатом внутри функции успеха, потому что они будут доступны только там:
function subFunction() {
$.ajax({
url: 'includes/ajax.php?request=create_untitled_project',
success: function(response) {
doSomethingWithTheResult(response);
}
});
return 'AJAX request initiated but results will be available later';
}