Javascript JQuery/JSON-需要访问代码块之外的JSON返回的数据

Javascript JQuery/JSON-需要访问代码块之外的JSON返回的数据,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我想知道是否有可能在JQuery getJSON方法之外访问返回的JSON数据。。像这样的 var price = ""; $.getJSON("../JSONDeliveryPrice", null, function (data) { price = eval(data.price); }); console.log(price); 这不起作用,但是,有没有其他方法可以访问该块之外的price?这并不是说您不能访问回调函数之外的数据,只是console.log语句是在执行回调之前执行的

我想知道是否有可能在JQuery getJSON方法之外访问返回的JSON数据。。像这样的

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

这不起作用,但是,有没有其他方法可以访问该块之外的price?

这并不是说您不能访问回调函数之外的数据,只是console.log语句是在执行回调之前执行的,所以在执行日志时,变量仍然为空

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

我是根据jQuery网站上的示例来说明这一点的

当我发现这个问题时,我正在研究一个类似的问题:


我相信您也需要同步拨打电话。

您需要使用同步请求。这里有一个很好的答案:使呼叫同步是向后的。处理响应的代码必须在中或在中调用。它将不起作用,因为您的console.logprice;将在getJSON回调函数之前调用mutch。