gpt4 book ai didi

javascript - For 循环 api 获取天气描述

转载 作者:行者123 更新时间:2023-11-30 11:20:46 27 4
gpt4 key购买 nike

我想构建一个函数,使用 Open Weather Map API 获取四个城市的预报天气描述。这些城市被放置在一个名为“cities”的变量列表中。我想我必须创建一个 for 循环来通过 API 运行所有城市吗?

结果应该是一个列表,其中所有城市显示 future 8 天的 8 种天气描述。

这就是我目前所拥有的。有什么建议吗?

function getDescriptions(){

var cities = [Cannes, London, Amsterdam, Berlin];

$.ajax({
url: 'http://api.openweathermap.org/data/2.5/forecast/daily?q=' + city + "&units=metric" + "&cnt=8" + "&APPID=***",
type: "GET",
dataType: "jsonp",
success: function(data){

var descriptions = data.list[i].weather[0].description;

}
});
}

最佳答案

让您感到困惑的是 ajax 调用是异步的,因此您不能只“返回”结果。 (参见 How do I return the response from an asynchronous call?)

所以您的 getDescriptions 将需要返回一个 promise ,该 promise 会在所有 ajax 调用完成时解决。

function getDescriptions(cities){

var requests = cities.map(function(city){
return $.ajax({
url: 'http://api.openweathermap.org/data/2.5/forecast/daily?q=' + city + "&units=metric" + "&cnt=8" + "&APPID=***",
type: "GET",
dataType: "jsonp"
}).then(function(data){
return data.weather[0].description
});
});

return Promise.all(requests);

}

var cities = ["Cannes", "London", "Amsterdam", "Berlin"];
getDescriptions(cities).then(function(results){
console.log(results);
});

关于javascript - For 循环 api 获取天气描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49935602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com