[TIL] Day26
[SEB FE] Day26
๋น๋๊ธฐ ์์ฒญ์ ๊ฐ์ฅ ๋ํ์ ์ฌ๋ก: โ๋คํธ์ํฌ ์์ฒญ'
fetch API
ํด๋น ์ ๋ณด๋ง ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์์ฒญ API ์ด์ฉ
fetch API
๋ฅผ ์ด์ฉํด ํด๋น ์ ๋ณด๋ฅผ ์๊ฒฉ URL๋ก๋ถํฐ ๋ถ๋ฌ์ด (๋น๋๊ธฐ๋ก ์งํ)โ ์ฆ, fetch API
๋ ํน์ URL๋ก๋ถํฐ ์ ๋ณด๋ฅผ ๋ฐ์์ค๋ ์ญํ
โย fetch๋ Promise
๋ฅผ ๋ฆฌํด
// fetch API ์ฌ์ฉ๋ฒ
let url = "~";
fetch(url)
.then((response) => response.json())
.then((json) => console.log(json))
.catch((error) => console.log(error));
fetch
๋ฅผ ์ด์ฉํด์ 2๊ฐ์ ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ํ๋์ ๊ฐ์ฒด๋ก ํฉ์น๋ ๊ฒ์ ๊ตฌํconst newsURL = "http://localhost:~~";
const weatherURL = "http://localhost:~~";
function getNewsAndWeather() {
// ๊ฒฐ๊ณผ๊ฐ์ ๋ด์ ๋น ๊ฐ์ฒด ์ ์ธ
let newObj = {};
return fetch(newsURL)
.then((data) => data.json()) // json ํํ๋ก ๋ณํ
.then((json) => {
// ๋น ๊ฐ์ฒด์ธ newObj์ key๊ฐ news์ธ value๋ก newsURL์ key์ธ data์ ํด๋นํ๋ value ์ฆ, ๋ฐฐ์ด ์์ ๋ค์ด์๋ ๊ฐ์ฒด 3๊ฐ๋ฅผ ํ ๋น
newObj.news = json.data;
return fetch(weatherURL);
})
.then((data) => data.json())
.then((json) => {
// newObj ๊ฐ์ฒด์ key๊ฐ weather์ธ value๋ก weatherURL ๊ฐ์ฒด ์์ฒด๋ฅผ ํ ๋น
newObj.weather = json;
return newObj;
});
}
Promise.all Test: ์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ Promise.all()
์ฌ์ฉ
function getNewsAndWeatherAll() {
let newObj = {};
// newsURL / weatherURL ๊ฐ์ฒด๋ฅผ ๊ฐ๊ฐ fetch๋ก ๊ฐ์ ธ์์ json ํํ๋ก ๋ณํ
let json1 = fetch(newsURL).then((data) => data.json());
let json2 = fetch(weatherURL).then((data) => data.json());
// ์ ๋ฌ์ธ์๋ ๋ฐฐ์ด ํํ๋ก ๊ฐ์ ธ์ค๋ฉฐ, Promise ํจ์์ฌ์ผ ํจ.
return Promise.all([json1, json2]).then((data) => {
// data[0]์ [json1, json2] ๋ฐฐ์ด ์ค index 0์ธ json1์ ๊ฐ๋ฆฌํด
newObj.news = data[0].data;
// data[1]์ [json1, json2] ๋ฐฐ์ด ์ค index 1์ธ json2๋ฅผ ๊ฐ๋ฆฌํด
newObj.weather = data[1];
return newObj;
});
}
async/await Test: ์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ async/await
์ฌ์ฉ
async function getNewsAndWeatherAsync() {
let newObj = {};
let news = await fetch(newsURL).then((data) => data.json());
let weather = await fetch(weatherURL).then((data) => data.json());
newObj.news = news.data;
newObj.weather = weather;
return newObj;
}
substr()
: ๋ฌธ์์ด์ ํน์ ์์น์์ ์์ํด์ ํน์ ๋ฌธ์ ์ ๋งํผ์ ๋ฌธ์๋ค์ย ๋ฐํconst str = 'Mozilla';
console.log(str.substr(1, 2)); // "oz" (index 1~2)
console.log(str.substr(2)); // "zilla" (index 2~๋๊น์ง)