Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как правильно вернуть значение в функции

Ярослав Иванов Знаток (307), закрыт 1 год назад
Изучаю JS. Есть функция, которая выполняет обращение к php файлу без перезагрузки страницы и по моей задумке она должна через return вернуть ответ от php файла, но в моем случае она возвращает null, т.к. функция завершается раньше, чем придет ответ от сервера. Как правильно сделать так, чтобы функция через return возвращала мне ответ от сервера?
Лучший ответ
SvyatYT YT Гуру (2878) 1 год назад
Я сам пока не дошел до джс, а зачем ретурн делать в самой функции? В функции прописано действие которое автоматически завершается, разве не?
РукажопПросветленный (24734) 1 год назад
Нет. Return предназначен как раз для использования внутри функции. И в подавляющем количестве языков.
Вы видимо только начинаете изучать программирование.
Есть 2 типа функций. Которая выполняет ряд действий и завершается. И которая возвращает значение (результат). return возвращает это значение.
Остальные ответы
Андрей Высший разум (425894) 1 год назад
AJAX-запрос асинхронен. И return не работает.
Вместо return answer; должны быть действия, выполняемые после того, как данные получены.
 function sendRequest(formData, callback) {
...
if (XML.status === 200) {
callback(XML.response);
}
});
}
Где callback - передаваемая в sendRequest функция, производящая обработку ответа.

Но прямое использование callback устарело. Сейчас для таких вещей используют либо промисы, либо async / await: https://learn.javascript.ru/async

И вместо XMLHTTPRequest лучше использовать современный https://learn.javascript.ru/fetch
Саня Семенов Оракул (60428) 1 год назад
1 callback
2 await
3 Promise
4 замыкания
5 axios
Похожие вопросы