promise
Last updated
Last updated
promise๋ฅผ ์์๋ณด๊ธฐ ์ ์ promise๊ฐ ํ์ํ ์ด์ ๋ฅผ ๋จผ์ ์์๋ณด์. ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋น๋๊ธฐ๋ก ๋์ํ๋ ์ฝ๋๊ฐ ์๋ค. ๋น๋๊ธฐ๋ ์์์ ์๊ด์์ด ์คํ ๋๋ ์ฝ๋๋ฅผ ๋งํ๋ค. ์์ ๋ก ์์๋ณด์.
setTimeout ํจ์๋ ๋น๋๊ธฐ ํจ์์ด๋ค. ์๊ฐ์ 0์ผ๋ก ์ค์ ํ์ง๋ง console์ ์ถ๋ ฅ๋ ๊ฐ์ 0์ด๋ค. setTimeout ํจ์์ ์ฝ๋ฐฑํจ์๋ ๋น๋๊ธฐ๋ก ์๋ํ๋ค. ๋จ์ํ 0์ด๊ฐ ์ง๋๊ณ ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋ ํ console์ด ์ถ๋ ฅ๋ ๊ฒ ๊ฐ์ง๋ง ์ฌ์ค์ ๊ทธ๋ ์ง ์๋ค. setTimeout ํจ์๋ ์ฝ๋ฐฑํจ์๋ฅผ ์ค์ผ์ค๋งํ ๋ค์, ํ์ด๋จธ id๋ฅผ ๋ฐํํ๊ณ ์ข ๋ฃ๋๋ค. setTimeout ํจ์๊ฐ ์ข ๋ฃ๋ ํ ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋๋ ๊ฒ์ด๋ค. ๋น๋๊ธฐ ์ฝ๋๋ ๊ธฐ๋์ ๋ค๋ฅด๊ฒ ๋์ํ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
promise๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋๋ ์ฝ๋์ ๋ฌธ์ ์ ์ ๊ทน๋ณตํ๊ธฐ ์ํด ES6๋ถํฐ ๋์ ๋ ๋นํธ์ธ ๊ฐ์ฒด์ด๋ค.
Promise ๋ด๋ถ์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ์ฑ๊ณตํ๋ฉด ์ฝ๋ฐฑ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ resolve ํจ์๋ฅผ ํธ์ถํ๊ณ , ์คํจํ๋ฉด reject ํจ์๋ฅผ ํธ์ถํ๋ค. Promise๋ ๋ค์๊ณผ ๊ฐ์ด ์ธ๊ฐ์ง ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋๊ธฐ(pending) : ์ด๊ธฐ ์ํ
์ดํ(fulfilled) : ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ
๊ฑฐ๋ถ(rejected) : ์คํจ
promise๋ then๊ณผ catch ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
then()
๋ฉ์๋๋ ์ฐ์ฐ์ด ์ฑ๊ณตํ์ ์คํ์ด๋๋ค. then์ ๋ฃ์ด๋ ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋๊ณ , ์ฒซ๋ฒ์งธ ์ธ์๋ก response ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋๋ค.
catch()
๋ฉ์๋๋ ์ฐ์ฐ์ด ์คํจํ์ ๋ ์คํ์ด๋๋ค. ์ฐ์ฐ์ด ์คํจํ ์ด์ ๊ฐ ์ธ์๋ก ์ ๋ฌ๋๋ค.