Добрый день! В общем, знаю, что вопрос ужасно надоевший и обсосанный в тысячах ответов, но сижу за проблемой весь день, а ясности в голове существенно не прибавилось. Поэтому вынужден понадоедать вам здесь:
Имеется функция вида:
function getInfo( ) {
let result;
$.ajax({
type: "POST",
url: "handler.php",
data: {action:'getInfo'},
success: function(resp) {
result = resp;
}
});
return result;
}
Почему это не будет работать корректно, я понимаю - асинхронность. Но необходимо, чтобы функция все таки возвращала этот несчастный ответ сервера и в своем теле содержала бы код именно +/- в форме *аякс запрос + (возможно) какие то действия с ответом сервера + возврат ответа/результата работы с ответом*. Проблемное здесь - возврат, конечно же. Возможно ли сделать это хоть каким нибудь разумным образом без async:false и перелопачивания подхода к "получению чего то с сервера" во всей структуре кода?
Причина такой потребности в том, что я по своей грандиозной глупости выстроил всю архитектуру кода с расчетом на функции как раз вида "вернутьЗначениеССервера" до того, как сел за аякс (случайный пример ниже).
function foo( ) {
const x = 5;
const info = getInfo(); // В теории - получаем что-то юзая аякс. Например, объект
if (info.something) { // Сразу же работаем с полученными данными
x +=5;
}
return x; // Ну, вы понимаете
}