61 lines
1.7 KiB
JavaScript
61 lines
1.7 KiB
JavaScript
/* @flow */
|
|
|
|
const axios = require("axios");
|
|
|
|
const BASE_URL = "https://weather.com/en-IN/weather/today/l/";
|
|
|
|
const MONTEVIDEO_UY = "-34.90,-56.16";
|
|
const LONDON_EN = "51.51,-0.13";
|
|
const PUNE_IN = "18.52,73.86";
|
|
|
|
const get_weather = coords => axios.get(`${BASE_URL}${coords}`);
|
|
|
|
async function getMontevideo() {
|
|
try {
|
|
const montevideoData = await get_weather(MONTEVIDEO_UY);
|
|
|
|
console.log("Montevideo, with async/await");
|
|
console.log(`Montevideo: ${montevideoData.data.length} bytes`);
|
|
} catch (error) {
|
|
console.log(error.message);
|
|
}
|
|
}
|
|
|
|
async function getLondonAndPuneInSeries() {
|
|
try {
|
|
const londonData = await get_weather(LONDON_EN);
|
|
const puneData = await get_weather(PUNE_IN);
|
|
|
|
console.log("London and Pune, in series");
|
|
console.log(`London: ${londonData.data.length} b`);
|
|
console.log(`Pune: ${puneData.data.length} b`);
|
|
} catch (error) {
|
|
console.log(error.message);
|
|
}
|
|
}
|
|
|
|
async function getCitiesInParallel() {
|
|
try {
|
|
const montevideoGet = get_weather(MONTEVIDEO_UY);
|
|
const londonGet = get_weather(LONDON_EN);
|
|
const puneGet = get_weather(PUNE_IN);
|
|
|
|
const [montevideoData, londonData, puneData] = await Promise.all([
|
|
montevideoGet,
|
|
londonGet,
|
|
puneGet
|
|
]);
|
|
|
|
console.log("All three cities in parallel, with async/await");
|
|
console.log(`Montevideo: ${montevideoData.data.length} b`);
|
|
console.log(`London: ${londonData.data.length} b`);
|
|
console.log(`Pune: ${puneData.data.length} b`);
|
|
} catch (error) {
|
|
console.log(error.message);
|
|
}
|
|
}
|
|
|
|
getMontevideo();
|
|
getLondonAndPuneInSeries();
|
|
getCitiesInParallel();
|