Promise
new Promise
Promise
๋ class์ด๊ธฐ์new
ํค์๋๋ฅผ ํตํดPromise
๊ฐ์ฒด๋ฅผ ์์ฑPromise
๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํํ ์ฝ๋ฐฑํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋๋ฐ, ์ด ์ฝ๋ฐฑํจ์๋resolve
,reject
ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌ๋ฐ์Promise
๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉด ์ฝ๋ฐฑํจ์๋ ์๋์ผ๋ก ์คํ๋จ์ฝ๋๊ฐ ์ ์ฒ๋ฆฌ๋์๋ค๋ฉด
resolve
ํจ์๋ฅผ ํธ์ถํ๊ณ , ์๋ฌ ๋ฐ์ ์reject
ํจ์๋ฅผ ํธ์ถ
Promise ๊ฐ์ฒด์ ๋ด๋ถ ํ๋กํผํฐ
new Promise
๊ฐ ๋ฐํํ๋ Promise ๊ฐ์ฒด๋state
,result
๋ด๋ถ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋ค๋ง, ์ง์ ์ ๊ทผํ ์ ์๊ณ
.then
,.catch
,.finally
๋ฉ์๋ ์ฌ์ฉํด ์ ๊ทผ ๊ฐ๋ฅState
๊ธฐ๋ณธ ์ํ๋
pending
. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํํ ์ฝ๋ฐฑํจ์๊ฐ ์ ์๋ํ๋ค๋ฉด โfulfilled
๋ก ๋ณ๊ฒฝ, ์๋ฌ ๋ฐ์ ์rejected
Result
๊ธฐ๋ณธ ์ํ๋
undefined
๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํํ ์ฝ๋ฐฑํจ์๊ฐ ์ ์๋ํ์ฌresolve(value)
ํธ์ถ๋๋ฉด โ value๋ก, ์๋ฌ ๋ฐ์ํดreject(error)
ํธ์ถ๋๋ฉด โerror
๋ก ๋ณ๊ฒฝ
then, catch, finally
then
์ฝ๋ฐฑํจ์์ ์์ฑํ๋ ์ฝ๋๋ค์ด ์ ์ฒ๋ฆฌ๋์๋ค๋ฉด
resolve
ํจ์ ํธ์ถ โ.then
๋ฉ์๋๋ก ์ ๊ทผ ๊ฐ๋ฅ.then
์์์ ๋ฆฌํดํ ๊ฐ์ดPromise
๋ผ๋ฉดPromise
๋ด๋ถ ํ๋กํผํฐresult
๋ฅผ ๋ค์.then
์ ์ฝ๋ฐฑํจ์์ ์ธ์๋ก ๋ฐ์์ดPromise
๊ฐ ์๋๋ผ๋ฉด ๋ฆฌํดํ ๊ฐ์.then
์ ์ฝ๋ฐฑํจ์ ์ธ์๋ก ๋ฐ์์ฌ ์ ์์
Catch
์ฝ๋ฐฑํจ์์ ์์ฑํ ์ฝ๋์ ์๋ฌ ๋ฐ์ ์
reject
ํจ์๋ฅผ ํธ์ถํ๊ณ.catch
๋ฉ์๋๋ก ์ ๊ทผ ๊ฐ๋ฅ
Finally
์ฝ๋ฐฑํจ์์ ์์ฑํ ์ฝ๋๋ค์ด ์ ์ ์ฒ๋ฆฌ ์ฌ๋ถ์ ๊ด๊ณ ์์ด
.finally
๋ฉ์๋๋ก ์ ๊ทผ ๊ฐ๋ฅ
Promise Chaining
๋น๋๊ธฐ ์์ ์ ์์ฐจ์ ์ผ๋ก ์งํํด์ผ ํ๋ ๊ฒฝ์ฐ
Promise all()
์ฌ๋ฌ ๊ฐ์ ๋น๋๊ธฐ ์์ ์ ๋์์ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋ ์ฌ์ฉ
์ธ์๋ก๋ ๋ฐฐ์ด์ ๋ฐ์ผ๋ฉฐ, ํด๋น ๋ฐฐ์ด์ ์๋ ๋ชจ๋
Promise
์์ ์ฝ๋ฐฑํจ์ ๋ด ์์ฑํ๋ ์ฝ๋๋ค์ด ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋์๋ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ์ ์ฅํด ์๋ก์ดPromise
๋ฅผ ๋ฐํ๋๋ถ์ด, ์ธ์๋ก ๋ฐ์ ๋ฐฐ์ด์
Promise
์ค ํ๋๋ผ๋ ์๋ฌ ๋ฐ์ ์, ๋๋จธ์งPromise
state์ ์๊ด์์ด ์ฆ์ ์ข ๋ฃ
Last updated