2015-01-06 3 views
-2

Я пытаюсь получить доступ к переменным внутри метода jQuery $ .post. Код, который я до сих пор ниже:Пытается получить доступ к переменной внутри функции jquery

var fromDatabase; 
$.post("../read.php", function(data) { 

    fromDatabase = JSON.parse(data); 

    console.log(fromDatabase); //this works fine 
    return fromDatabase; 
}); 

console.log(fromDatabase); // but this gives me 0. 

Я пытаюсь получить из базы данных переменной, поэтому я попытался объявить его вне функции безрезультатно. Спасибо.

ответ

0

Вы не можете - вы должны продолжить выполнение программы из обратного вызова, а не сразу после асинхронного вызова $.post.

+0

И вы не просто использовали думехаммер, потому что ...? – Scimonster

+0

, потому что IMHO это был не совсем обман канонического «как вернуть значение из ответа AJAX». Я создал эту вики сообщества. – Alnitak

0

Вы не можете return от асинхронной функции, это характер асинхронности. Вместо этого, после того, как ваше значение доступно (вызывается функция обратного вызова), вы должны работать с данными в рамках этой функции.

Возможно, хорошей отправной точкой будет Ajax tutorial. Если вы хотите больше, просто Google для JavaScript async.

Смежные вопросы