2013-01-02 42 views
0

我无法将jQuery.getJSON函数的数据参数赋值给变量。jQuery.getJSON - 将数据参数赋值给变量?

var storage; 

$.getJSON('server.json', function(data) { 
    storage = data; 
}); 

console.log(storage); 

编辑:好,我明白了,所以我们说“存储装置”变量是等于server.json文件,但由于代码如下$ .getJSON行服务器之前执行我不能用它回答,那么我该如何检查服务器何时应答?

+0

想一下这段代码。为什么'$ .getJSON'具有更复杂的使用回调,如果它同步运行...? –

+0

@MattiVirkkunen但我怎样才能仍然分配JSON文件到变量? – Israelg99

回答

3

通过“之后,”,你的意思是“下面的代码”,我想。

如果是这样,那么它不是在服务器应答之后。

使用此:

var storage; 
$.getJSON('server.json', function(data) { 
    storage = data; 
    console.log(storage); 
}); 

服务器有后的getJSON你给回调被调用(异步)回答。这就是你必须处理结果的地方。 $.getJSON(...);之下的代码行在之前执行服务器应答,以便它们不能使用结果。

+0

nope,我想把JSON文件分配给变量... – Israelg99

+0

@Israel:你不能那样做。这不是事件/回调驱动模型JS是如何基于工作的。 –

+0

@IsraelG。你必须明白查询是异步的意思。 JavaScript应用程序是事件驱动的(事件是服务器或用户交互的响应)。你必须明白这一点。你不能简单地拥有一个同步代码。 –