Promise
๋น๋๊ธฐ์ฒ๋ฆฌ ํ ๋ ์ฌ์ฉํ๋ค.
continuation passing style - ํจ์๋ฅผ ์ง์์ ์ผ๋ก ๋๊ฒจ์ค๋ค.
new Promise => ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ค๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ๋์์ค๋ค.
๊ฐ์ฒด๋ผ๋๊ฒ ๋ง๋ค์ด ์ก๋ค. ์์ ์ฅ ์ ์๋ ๋ฌผ๊ฑด์ด ๋ง๋ค์ด ์ก๋ค. ๋ถํ์ ํ๊ณ ์ค๋ฌผ๋ก ๊ฐ๊ฒ ๋์๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ฒด์งํฅ๊ณผ ์ ๋ชฉํ์ฌ ๋น๋๊ธฐ๋ฅผ ๋ค๋ฅผ ์ ์๊ฒ ํ์๋ค.
์๋๋ ํจ์๋ก ๋ง๋ค๊ณ ๊ธฐ๋ค๋ฆฌ๊ธฐ๋ง ํ๋๋ฐ ์์ ๋๊ฐ ๋์ด๋๊ณ ๋ฅ๋์ ์ผ๋ก ํ ์ ์๊ฒ ๋์๋ค.
ํ์ฉ์ฑ์ด ํจ์ฌ ์ปค์ก๋ค.
peomise๋ฅผ ์จ๋ callbackhell์ด ๋ํ๋ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ promise๊ฐ ํด๊ฒฐํด ์ค๋ค. ํ๋๊ฑด ์๋ชป๋๊ฑฐ๋ค.
๊ฒฐ๊ณผ๊ฐ์ ๋ชจ์์ ๊ณตํต์ ๋..
๋งคํํ๋ ํจ์๋ฅผ ํ๋ ๋ง๋ฌ..
new Promise๋ ์ธ์๋ก ํจ์๋ฅผ ๋ฐ๋๋ค.
๊ทธ ํจ์์๋
resolve
์reject
๋ผ๋ ์ธ์๋ฅผ ๋ฐ๋๋ค.์ด ๋๊ฐ๋ Promise์ธก์์ ์๋์ผ๋ก ๋๊ฒจ์ฃผ๋ ๊ฒ์ด๋ค.
new Promise์ ์ธ์๋ก ๋ฐ์ ํจ์ ๋ด๋ถ์์ ๋น๋๊ธฐ ์์ ์ ํ๋ค.
์ฝ๋๋ฅผ ๋ณด๋ฉด resolve์ reject๋ฅผ ์คํํ๋ค. ์ด๋
ํจ์
๋ผ๋ ๊ฒ์ด๋ค.์ฑ๊ณตํ๋ฉด์ resolve๋ฅผ ์คํํ๊ณ ์คํจํ๋ฉด reject๋ฅผ ์คํํ๋ค.
var youtubePromise
๊ทธ๋์ ์ด ๋ณ์์๋ ๋น๋๊ธฐ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด์ด๋ค.
new Promise์ ์ธ์คํด์ค์ด๋ค.
์ธ์คํด์ค์๋ then์ด๋ผ๋ ๋ฉ์๋์ catch๋ผ๋ ๋ฉ์๋๊ฐ ์๋ค.
then๊ณผ catch๋ ์ธ์๋ก function์ ๋ฐ๋๋ค.
then์ ์ธ์๋ก ๋ฐ์ ํจ์๋ resolve๋์ ๋ ์คํ๋๋ค.
catch๋ผ๋ ๋ฉ์๋๋ reject๋์ ๋ ์คํ๋๋ค.
then์ ์ธ์์ธ ํจ์์์ data๋ผ๋ ์ธ์๋ฅผ ๋ฐ๋๋ฐ ๊ทธ ์ธ์๋ successํ์ ๋ ๋ฐ๋๋ค.
rejectํ์ ๋ ๋ฐ๋ error์ธ์๋ catch๋ก ์ ๋ฌ ๋๋ค.
Last updated
Was this helpful?