サードパーティ API の呼び出しから取得したデータから構築しているオブジェクトを返そうとしています。Request( https://github.com/mikeal/request ) モジュールを使用して同じことを実現しています。
ただし、コールバック関数からこのオブジェクトを返したいです。
私の要求呼び出しは JavaScript 関数の一部であり、この外部関数が新しく構築されたオブジェクトを返すことができるようにしたいと考えています。コールバック関数がまだオブジェクトを構築していないため、外側の関数からオブジェクトを返そうとするたびに空のオブジェクトが返されるため、node.js の非ブロック性が原因で問題に直面しています。
どうすればこれを達成できますか?
function getData(url){
var myWeatherData = new Object();
var data;
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
data = JSON.parse(body);
myWeatherData.locationName = data.current_observation.display_location.full;
myWeatherData.weather = data.current_observation.weather;
myWeatherData.temperature_string = data.current_observation.temperature_string;
myWeatherData.relative_humidity = data.current_observation.relative_humidity;
myWeatherData.wind_string = data.current_observation.wind_string;
myWeatherData.feelslike_string = data.current_observation.feelslike_string;
}
return myWeatherData; // THIS IS A RETURN FROM CALL BACK
});
// return myWeatherDataArr; -- THIS RETURNS AN EMPTY
};