У меня есть асинхронная функция, которая запрашивает данные по Ajax и может быть вызвана далеко не 1 раз. Облегчив себе работу вынес все дело с запросом в отдельную функцию и написал return data; и... Получил undefined.
Функция простая, не буду здесь постить ее копию, сделал простой вариант для примера, что бы было на чем показывать:
$("#loadmore").on('input', function() {
var test;
sendData(function(outputData) {
test = outputData;
});
console.log(test);
});
function sendData(callback) {
//код запроса ajax
//...
//успех
success: function(data, xhr)
{
outputData = JSON.parse(data);
callback(outputData);
}
}
Этот код не работает, но я могу работать с данными внутри коллбека, это я понял. Но есть ли возможность вынести данные из функции, примерно как в этом коде?
console.log(test)коллбек, скорее всего, ещё не запускался и поэтому test ещё пустой. – andreymal Aug 04 '17 at 16:49strict? Я пока приторможенный, пишу на старом... – Telion Aug 04 '17 at 16:53setInterval(function(){console.log(test);}, 100);и вы увидите, что всё работает ровно так, как я рассказал. – andreymal Aug 04 '17 at 16:58