基于 Promise 对象实现天气预报功能
本案例展示如何利用 Promise 对象异步获取天气预报数据并进行处理。
function getWeatherData(city) {
return new Promise((resolve, reject) => {
// 模拟异步获取天气数据
setTimeout(() => {
const weatherData = {
北京: { temperature: 25, weather: '晴朗' },
上海: { temperature: 30, weather: '多云' },
广州: { temperature: 32, weather: '雷阵雨' }
};
if (weatherData[city]) {
resolve(weatherData[city]);
} else {
reject('城市不存在');
}
}, 1000);
});
}
getWeatherData('北京')
.then(data => {
console.log(`北京: 温度 ${data.temperature} 度,天气 ${data.weather}`);
})
.catch(error => {
console.error(error);
});
代码首先定义了一个 getWeatherData
函数,该函数接收城市名称作为参数,返回一个 Promise 对象。在函数内部,我们模拟了异步获取天气数据的过程。如果获取成功,则调用 resolve
方法并将天气数据作为参数传递;如果获取失败,则调用 reject
方法并将错误信息作为参数传递。
通过调用 then
方法可以获取到 resolve
方法传递的数据,并进行后续处理;通过调用 catch
方法可以捕获 reject
方法传递的错误信息,并进行相应的处理。
本案例清晰地展示了如何使用 Promise 对象进行异步编程,提高代码可读性和可维护性。
暂无评论