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, время: 10:29. |