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
,但它们无法正常工作。
老实说,不能解决这个问题。
答案 0 :(得分:1)
你需要承诺:
$.get(requestStr, function(data){
a = data;
}).always(function(){
console.log(a);
});
因为$.get()
方法是异步调用,所以响应需要时间来执行并执行js代码。
除此之外,您可能需要查看$.when()
。
答案 1 :(得分:0)
Ajax调用是异步的,这意味着在a = data;
之后调用console.log(a);
,因为从Web获取数据需要时间。
您需要在数据实际到达时处理数据:
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);
});