在函数 getweather()中,我从Json对象中获取一些天气数据,并将该数据存储在变量 data 中。在该函数中,我可以处理Json数据,但如何从 getweather()外部访问数据?
如果我返回变量位置或数据,则无关紧要。变量地点不是Json。
如何处理 place 变量以使其在函数 getweather()中工作?
var ajax = require('ajax');
var place;
place = getweather();
function getweather()
{
// Make the request
ajax(
{
url: 'http://api.openweathermap.org/data/2.5/weather?q=paris.fr', type: 'json'
},
function(data)
{
// Success!
console.log("Successfully fetched weather data!");
// Extract data
var location = data.name;
return location;
},
function(error) {
// Failure!
console.log('Failed fetching weather data: ' + error);
}
);
}
答案 0 :(得分:1)
AJAX中的A代表异步。您的代码中发生的事情是您在api.openweather.org的异步调用返回之前尝试为
yo angular:directive myDirective
yo angular:service myService
yo angular:controller myController
分配值。
您可以在place
之后直接放置console.log(place);
之类的语句来检查此问题。在您看到place = getweather();
None
已退回
this post中详细介绍了此问题。它建议围绕回调重构代码。