function() {return ' '}
Доброго времени суток дорогие форумчане.
Осваиваю JS уже давно, но время от времени все равно вылазят непонятные ошибки. Подскажите, что может быть не так? Функция возвращает мне undefined, а должна бы строку. function get_tech_name(id){ <!-- Получение наименования типа техники --> $.ajax({ type: 'GET', url: '/api/get_technique_type_name/', data: {id: id}, success: function(data) { if (data.code == '1'){ return data.data; } else { <!-- Ошибка обработки --> return data.response; } } }); } А вот если поставить alert вместо return, то все в порядке... В чем тайна? P.S.(Строка, приходящая из url = \u0421\u0430\u043c\u043e\u0441\u0432\u0430\u043b) |
У вас функция get_tech_name ничего не возвращает, поэтому и undefined. return у вас стоит в функции-калбеке, которая выполнится когда аякс запрос будет выполнен, а на это требуется время. Аякс запрос выполняется асинхронно, т.е. функция get_tech_name не будет ждать пока выполнится запрос и будет завершена раньше чем будет вызван аяксовый калбек. Так что передавайте данные из калбека куда вам надо.
|
Спасибо.
|
Собственно поправил функцию, чтобы она удовлетворяла требованиям.
function get_tech_name(id){ <!-- Получение наименования типа техники --> var response = 'l'; $.ajax({ type: 'GET', url: '/api/get_technique_type_name/', async: false, data: ({id: id}), success: function(data) { if (data.code == '1'){ response = data.data; } else { <!-- Ошибка отправки --> response = data.response; } } }); return response; } |
Цитата:
P.S. Комментарии в JS коде пишутся не так... |
Часовой пояс GMT +3, время: 11:22. |