$.get 并保存全局变量
$.get and saving global variables
var a = 0;
var requestStr ="https://api.flickr.com/services/rest/?method=flickr.interestingness.getList&format=json&nojsoncallback=1&per_page=20&api_key=dc140afe3fd3a251c2fdf9dcd835be5c"; //flickr key.
$.get(requestStr, function(data){
a = data;
});
console.log(a);
这会打印出 0,但我正在尝试将 data
参数保存到全局变量 a.
我试过自调用函数并使用第二个函数来设置 a = data
,但它们不起作用。
老实说我想不通。
你需要有承诺:
$.get(requestStr, function(data){
a = data;
}).always(function(){
console.log(a);
});
因为$.get()
方法是异步调用,所以响应需要时间来执行js代码。
除此之外,您可能还想看看 $.when()
。
Ajax 调用是异步的,这意味着 a = data;
在 console.log(a);
之后被调用,因为从网络获取数据需要时间。
您需要在数据实际到达时处理数据:
var a = 0;
var requestStr ="https://api.flickr.com/services/rest/?method=flickr.interestingness.getList&format=json&nojsoncallback=1&per_page=20&api_key=dc140afe3fd3a251c2fdf9dcd835be5c"; //flickr key.
$.get(requestStr, function(data){
a = data;
console.log(a);
});
var a = 0;
var requestStr ="https://api.flickr.com/services/rest/?method=flickr.interestingness.getList&format=json&nojsoncallback=1&per_page=20&api_key=dc140afe3fd3a251c2fdf9dcd835be5c"; //flickr key.
$.get(requestStr, function(data){
a = data;
});
console.log(a);
这会打印出 0,但我正在尝试将 data
参数保存到全局变量 a.
我试过自调用函数并使用第二个函数来设置 a = data
,但它们不起作用。
老实说我想不通。
你需要有承诺:
$.get(requestStr, function(data){
a = data;
}).always(function(){
console.log(a);
});
因为$.get()
方法是异步调用,所以响应需要时间来执行js代码。
除此之外,您可能还想看看 $.when()
。
Ajax 调用是异步的,这意味着 a = data;
在 console.log(a);
之后被调用,因为从网络获取数据需要时间。
您需要在数据实际到达时处理数据:
var a = 0;
var requestStr ="https://api.flickr.com/services/rest/?method=flickr.interestingness.getList&format=json&nojsoncallback=1&per_page=20&api_key=dc140afe3fd3a251c2fdf9dcd835be5c"; //flickr key.
$.get(requestStr, function(data){
a = data;
console.log(a);
});