<aside> ๐ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ Javascript HTTP ํด๋ผ์ด์ธํธ์ด๋ค.
HTTP์์ฒญ์ Promise๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
catch์์ error handling์ด ๊ฐ๋ฅํ๋ค.
const url = "<https://jsonplaceholder.typicode.com/todos>";
// axios ์์ฒญ ๋ก์ง
axios
.get(url)
.then((response) => console.log(response.data))
.catch((err) => {
// ์ค๋ฅ ๊ฐ์ฒด ๋ด์ response๊ฐ ์กด์ฌํ๋ค = ์๋ฒ๊ฐ ์ค๋ฅ ์๋ต์ ์ฃผ์๋ค
if (err.response) {
const { status, config } = err.response;
// ์๋ ํ์ด์ง
if (status === 404) {
console.log(`${config.url} not found`);
}
// ์๋ฒ ์ค๋ฅ
if (status === 500) {
console.log("Server error");
}
// ์์ฒญ์ด ์ด๋ฃจ์ด์ก์ผ๋ ์๋ฒ์์ ์๋ต์ด ์์์ ๊ฒฝ์ฐ
} else if (err.request) {
console.log("Error", err.message);
// ๊ทธ ์ธ ๋ค๋ฅธ ์๋ฌ
} else {
console.log("Error", err.message);
}
</aside>
<aside> ๐ก ES6๋ถํฐ ๋์ ๋ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
Promise ๊ธฐ๋ฐ ๋น๋๊ธฐ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๋จ์
fetch์ ๊ฒฝ์ฐ catch์์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ์ค์ง ๋คํธ์ํฌ ์ฅ์ ์ผ์ด์ค์ด๋ค.
๊ฐ๋ฐ์๊ฐ ์ผ์ผํ then()์์ ๋ชจ๋ ์ผ์ด์ค์ ๋ํ HTTP ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค.
const url = "<https://jsonplaceholder.typicode.com/todos>";
fetch(url)
.then((response) => {
if (!response.ok) {
throw new Error(
`This is an HTTP error: The status is ${response.status}`
);
}
return response.json();
})
.then(console.log)
.catch((err) => {
console.log(err.message);
});
</aside>