๐ then()์์ ๋น๋๊ธฐ ์์
์ด ์๋ฃ๋๋ฉด ๋ฑ๋ก๋ ์ฝ๋ฐฑ์ ์คํํด์ค๋ค.then()์ Promise๋ฅผ ๋ฆฌํดํ๋ค1. fetch ํจ์๊ฐ url๋ก request๋ฅผ ๋ณด๋ด๋ฉด Promise Pending ์ํ๋ฅผ ๋ฆฌํด.2. Promise๊ฐ Fulfilled ์ํ๊ฐ ๋๋ฉด Promise์ ๊ฒฐ๊ณผ๊ฐ์ ์ฝ๋ฐฑ์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ๋ค.3. ๋ง์ฝ, ์ฝ๋ฐฑ์ด Promise๋ฅผ ๋ฆฌํดํ๋ฉด then ๋ฉ์๋๊ฐ ๋ฆฌํดํ Promise๋ ๋์ผํ ์ํ์ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ๊ฒ ๋๋ค.4. ์ฝ๋ฐฑ์ด Promise๊ฐ ์๋ ํ๋ฒํ ๊ฐ์ ๋ฆฌํดํ๋ฉด, then ๋ฉ์๋๊ฐ ๋ฆฌํดํ Promise๋ FulFilled ์ํ๊ฐ ๋๊ณ ๋ฆฌํด๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๊ฐ๊ฒ๋๋ค. then() ๋ฉ์๋์ ํ๋ฆํ ์ค๋ก ์ ๋ฆฌPromise๊ฐ Fulfilled ์ํ๊ฐ ๋๋ฉด(๋น๋๊ธฐ ์์
์ด ๋๋๋ฉด) ๋ค์ ์..
์ฝ๋ฐฑ(Callback)์ด๋?์ด๋ค ํจ์์ ์๊ท๋จผํธ๋ก ์ ๋ฌ๋๋ ํจ์๋ฅผ ์ฝ๋ฐฑ ๋๋ ์ฝ๋ฐฑ ํจ์๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ํ ๋น๋๊ธฐ ํจ์๋ฅผ ์ ๊ณตํด ์ค๋ค.์ ๊ณต๋๋ ๋น๋๊ธฐ ํจ์์ ์ฝ๋ฐฑ์ ๋๊ฒจ์ฃผ๊ธฐ๋ง ํ๋ฉด ๋น๋๊ธฐ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ์ ์๋ค.
๐ฉ๐ป๐ป await ํจ์Promise์ ์ฑ๊ณต ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐ์์ค๋ ค๋ฉด ํจ์ ์์ await์ ์ฌ์ฉํ๋คasync์ ํจ์๋, ํ์ผ module์ ์ต์์ ๋ ๋ฒจ์์๋ง ์ฌ์ฉํ ์ ์๋ค. ์ฌ๊ธฐ์ module์ ES6 ๋ชจ๋์ ์๋ฏธ๐ฉ๐ป๐ป await์ ์ญํ fetchํจ์๋ Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค.fetch ์์ await๋ฌธ์ด ์์ผ๋ฉด Promise๊ฐ Fulfilled ์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.Promise๋ ์ธ ๊ฐ์ง ์ํ๋ฅผ ๊ฐ๋๋ค. Pending (๋ฏธ๊ฒฐ์ ) : ๋น๋๊ธฐ ์์
์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ ๋ Fulfilled (์ฑ๊ณต) : ๋น๋๊ธฐ ์์
์ ์ฑ๊ณต์ ์ผ๋ก ๋๋ฌ์ ๋ Rejected (์คํจ) : ๋น๋๊ธฐ ์์
์ด ์คํจํ์ ๋๋น๋๊ธฐ ์์
์ด ์๋ฃ๋๋ฉด Promise๊ฐ ์์
๊ฒฐ๊ณผ๋ฅผ ์๋ ค์ค๋ค. ์ด๋, await๋ก ํ์ฉํ๋ค.๐ ..
๐ก fetch๋ ?Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋คfetch()๋ console.log()๋ณด๋ค ํจ์ฌ ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ printEmployees() ํธ์ถ ์๋ ๋ ๋ง์ console.log()๋ฌธ์ด ์์์ด๋ ๊ทธ ์ถ๋ ฅ๋ฌธ๋ค์ด ๋ชจ๋ ์คํ๋๊ณ ๋์ function() ์์ผ๋ก ๋์๊ฐ๋๋ค.๐ก Promise ๋ ?๋น๋๊ธฐ ์์
์ด ์๋ฃ๋๋ฉด ๊ฐ์ ์๋ ค์ฃผ๋ ๊ฐ์ฒด์์
์ด ์๋ฃ๋๋ฉด ๊ฐ์ ์๋ ค์ค ๊ฒ์ '์ฝ์'ํจfetch๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์
์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ก ๋๋ ค์ค ์๋ ์์ผ๋๊น, ์ผ๋จ Promise๋ฅผ ๋๋ ค์ฃผ๊ณ ๋์ค์ ์์
์ด ์๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ์ Promise์ ์ฑ์ ๋ฃ์ด์ค Promise๊ฐ ๋์ค๊ธฐ ์ ์ฝ๋ฐฑ ๊ธฐ๋ฐgetEmployees((response) => { json((response, (data)) => { cons..
โ
|| ์ฐ์ฐ์|| ์ฐ์ฐ์๋ ์ข์ธก์ ๊ฐ์ด falsy ๊ฐ(0, "", false, null, undefined, NaN)์ผ ๋ ์ฐ์ธก์ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋ฐ๋ผ์ user๊ฐ ๋น ๋ฌธ์์ด("")์ด๋ฏ๋ก currentUser1์ "Anonymous"๊ฐ ๋ฉ๋๋ค. โ
?? ์ฐ์ฐ์?? ์ฐ์ฐ์๋ ์ข์ธก์ ๊ฐ์ด null ๋๋ undefined์ผ ๋๋ง ์ฐ์ธก์ ๊ฐ์ ๋ฐํํฉ๋๋ค.
this๋ ํจ์๋ฅผ ํธ์ถํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ํค์๋์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ์ง ์๊ณ ํจ์ ๋ด๋ถ์์ ์ฌ์ฉํฉ๋๋ค.๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ๋ง๋ค ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. โ
์ผ๋ฐ ํจ์์ ํ์ดํ ํจ์์ ๋ํด์๋ this๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ค !์ผ๋ฐ ํจ์์์ thisํ์ดํ ํจ์์์ thisํจ์๋ฅผ ํธ์ถํ๋ ๊ฐ์ฒด๊ฐ this์ ๋ด๊ธด๋คํธ์ถํ ๋์์ ๋ฐ๋ผ ์๋์ ์ผ๋ก ๋ณํ๋๊ฒ ์๋,arrow funtion์ด ์ ์ธ๋๋ ์ง์ ์ ๊ทธ๋ ์ ํจํ this ๊ฐ๊ณผ ๋๊ฐ์ ๊ฐ์ ๊ฐ์ง๊ณ ๋ํ๋ค. this๊ฐ ํ์ํ ๋ ?์ธ๋ถ์์ ์ฌ๋ฌ ๊ฐ์ฒด์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฉ์๋๋ฅผ ๋ง๋ค ๋๊ฐ์ฒด ๋ด๋ถ์์ ๋ฉ์๋๋ฅผ ๋ง๋ค ๋ ๋ฉ์๋๊ฐ ์ํด ์๋ ๊ฐ์ฒด์ ํ๋กํผํฐ๊ฐ ํ์ํ ์ํฉ์ผ ๋