0
目的の情報を表示:getWeather(へ onClickイベントトリガ同期呼び出し)を呼び出し表示()同期呼び出し気象API、次いで
var position={} // object containing latitude and longitude
var getWeather = function(pos) {
$.getJSON('https://api.openweathermap.org/data/2.5/weather', {
lat: pos.lat,
lon: pos.lng,
appid: "*****appid***"
}, showWeather, 'jsonp');
return new Promise(function (resolve, reject) {
resolve(weather_data)
});
};
var showWeather = function(data) {
return weather_data;
};
function display(weather_info){
console.log(weather_info);
}
をこれらは、上記の二つの関数であること私約束を使用して、それぞれの順序で同期して実行したい。
問題:私はそれがないweather_dataを返さないクリック機能でそれを使用
。
$("html").click(function() {
getWeather(position)
.display(getWeather);
});
私は間違っていますか?
$ .getJSONのshowWeatherコールバック関数がこの問題を引き起こしています。私は約束をどこに返すべきかわからない。
'getWeather()'の実際のロジックを見る必要があります。私はあなたが正しく非同期パターンを使用していないと推測して、リクエストから約束の代わりにリクエストが完了する前にデータを返そうとしています –
'weather_report'には' display'という関数が含まれています引数として) – baao
@RoryMcCrossanここでコードを見ることができますhttp://jsfiddle.net/vyELp/123/ –