JQuery / JSON - нужен доступ к данным, возвращенным из JSON вне блока кода - PullRequest
0 голосов
/ 17 января 2012

Мне было интересно, можно ли получить доступ к возвращенным данным JSON вне метода getQSON JQuery ... как-то так ...

var price = "";
$.getJSON("../JSONDeliveryPrice", null, function (data) {
  price = eval(data.price);
});
console.log(price);

Это не работает, но есть ли другой способ получить доступ к цене за пределами этого блока?

Ответы [ 3 ]

0 голосов
/ 17 января 2012

Дело не в том, что вы не можете получить доступ к данным вне функции обратного вызова, просто оператор console.log() выполняется до выполнения обратного вызова, поэтому во время выполнения журнала переменная по-прежнему пуста .

Я сделал скрипку , чтобы проиллюстрировать это на примере на сайте jQuery

0 голосов
/ 19 января 2012

Я только что исследовал похожую проблему, когда нашел этот вопрос: Существует ли версия $ getJSON, которая не использует обратный вызов?

Я полагаю, что вам понадобитсячтобы сделать ваш звонок синхронно.

0 голосов
/ 17 января 2012
var price = "";
$.getJSON("../JSONDeliveryPrice", null, function (data) {
    price = eval(data.price);
    console.log(price); // e.g. "$120", comes later
    doSomething(data); // uses the JSON data
});
console.log(price); // "", comes first
...