๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/Code-States

[D+65] ๋น„๋™๊ธฐ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๋‚˜์˜ ์ƒ๊ฐ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2020. 12. 22.

 

D+65

-  ๋น„๋™๊ธฐ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๋‚˜์˜ ์ƒ๊ฐ -

(๋น„๋™๊ธฐ ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ธฐ)

 


 

 

• Promise ์‹คํ–‰ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‘๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ resolve, reject๋Š” ๊ฐ๊ฐ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”?

resolve์™€ reject๋Š”  ๋น„๋™๊ธฐ ์‹คํ–‰์ด ์„ฑ๊ณต๊ณผ ์‹คํŒจ์‹œ์— ๊ฐ๊ฐ ๋™์ž‘ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ
resolve๋Š” ๋น„๋™๊ธฐ ์‹คํ–‰์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ–ˆ์„ ๊ฒฝ์šฐ์— ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด๊ณ , reject๋Š” ๋น„๋™๊ธฐ ์‹คํ–‰์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์— ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

• new Promise( )๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•œ Promise ์ธ์Šคํ„ด์Šค์—๋Š” ์–ด๋–ค ๋ฉ”์†Œ๋“œ๊ฐ€ ์กด์žฌํ•˜๋‚˜์š”?

Promise ์ธ์Šคํ„ด์Šค๋กœ๋Š” .then๊ณผ .catch ๊ทธ๋ฆฌ๊ณ  .finally๊ฐ€ ์žˆ๋Š”๋ฐ
.then์€ ๋น„๋™๊ธฐ ์‹คํ–‰์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ–ˆ์„ ๋•Œ ์ž‘๋™ํ•˜๋Š” resolve๋ฅผ ํ†ตํ•ด ๋ฐ›์€ ์ธ์ž๋ฅผ .then์„ ์ด์šฉํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
.catch๋Š” ๋น„๋™๊ธฐ ์‹คํ–‰์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์„๋•Œ ๋™์ž‘ํ•˜๋Š” reject๋ฅผ ํ†ตํ•ด ๋ฐ›์€ ์ธ์ž๋Š” .catch๋ฅผ ์ด์šฉํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ .finally๋Š” ๋น„๋™๊ธฐ ์‹คํ–‰์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ–ˆ๋ƒ, ์•ˆํ–ˆ๋ƒ ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฉ”์†Œ๋“œ ์ด๋‹ค.

 

• Promise.prototype.then ๋ฉ”์†Œ๋“œ๋Š” ๋ฌด์—‡์„ ๋ฆฌํ„ดํ•˜๋‚˜์š”?

resolve์˜ ๊ฐ’์„ ๋ฐ›์•„ ๋ฆฌํ„ดํ•œ๋‹ค.

 

• Promise.prototype.catch ๋ฉ”์†Œ๋“œ๋Š” ๋ฌด์—‡์„ ๋ฆฌํ„ดํ•˜๋‚˜์š”?

๋น„๋™๊ธฐ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™๋˜์ง€ ์•Š์€ reject์˜ ๊ฐ’์„ ๋ฐ›์•„ ๋ฆฌํ„ดํ•œ๋‹ค.

 

• Promise์˜ ์„ธ ๊ฐ€์ง€ ์ƒํƒœ๋Š” ๊ฐ๊ฐ ๋ฌด์—‡์ด๋ฉฐ, ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋‚˜์š”?

๋Œ€๊ธฐ (pending) : ์ดํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์€ ์ดˆ๊ธฐ์ƒํƒœ.
์ดํ–‰ (fulfilled) : ์—ฐ์‚ฐ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์ƒํƒœ.
๊ฑฐ๋ถ€ (rejected) : ์—ฐ์‚ฐ์ด ์‹คํŒจํ•œ ์ƒํƒœ. 

 

• await ํ‚ค์›Œ๋“œ ๋‹ค์Œ์— ๋“ฑ์žฅํ•˜๋Š” ํ•จ์ˆ˜ ์‹คํ–‰์€ ์–ด๋–ค ํƒ€์ž…์„ ๋ฆฌํ„ดํ•  ๊ฒฝ์šฐ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋‚˜์š”?

await๋Š” async์™€ ์ง๊ฟ์œผ๋กœ function ์•ž์— async๋ฅผ ๋ถ™์—ฌ์ค€ ๋‹ค์Œ์— ๋น„๋™๊ธฐ ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ๋“ค ์•ž์— await๋ฅผ ๋ถ™์—ฌ์ค˜์„œ ์‚ฌ์šฉํ•ด ์ค€๋‹ค.
์ด๋•Œ await์˜ ๋’ท ๋ถ€๋ถ„์€ ํ”„๋กœ๋ฏธ์Šค ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ๋“ค์ด์–ด์•ผ ํ•œ๋‹ค.

 

• await ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์–ด๋–ค ๊ฐ’์ด ๋ฆฌํ„ด๋˜๋‚˜์š”?

promise ๊ฐ’์ด ๋ฆฌํ„ด๋œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€