Почему следующая функция JavaScript/jQuery возвращает «undefined»?Функция JavaScript возвращает «undefined»
function getData(number) {
$.get("data.php", {
content: number
}).done(function(data) {
return data;
});
}
Почему следующая функция JavaScript/jQuery возвращает «undefined»?Функция JavaScript возвращает «undefined»
function getData(number) {
$.get("data.php", {
content: number
}).done(function(data) {
return data;
});
}
getData()
мгновенно возвращается. Функция done()
, которую вы добавили, будет гореть LATER, когда она будет полностью выполнена. И вы ничего не возвращаете в getData()
.
Значение возвращаемого значения по умолчанию для любой функции, если оно достигает конца без оператора возврата, не определено. Внешняя функция getData в вашем примере не содержит оператора возврата. (Хотя внутренняя, анонимная функция делает, эта функция не вызывается, она передается в качестве аргумента в метод, который будет вызываться позднее)
Ваша функция .done - это функция обратного вызова, означающая, что это не вызываются сразу, только когда запрос AJAX завершен. Вместо этого вы должны назначать данные для значения в вашем пространстве имен в обратном вызове, а затем использовать это значение в другом месте приложения.
Потому что он ничего не возвращает. 'Return' в _done_ для _callback_. –
Добро пожаловать в мир asyn call. '$ .get' - асинхронный вызов – Satpal
Подсказка:' getData() '* завершает * и * возвращает * до того, как' .done() 'когда-либо вызывается. – David