Jieunny์˜ ๋ธ”๋กœ๊ทธ

S2) Unit3. [์‹ค์Šต] ํƒ€์ด๋จธ API ๋ณธ๋ฌธ

CodeStates/Training

S2) Unit3. [์‹ค์Šต] ํƒ€์ด๋จธ API

Jieunny 2023. 1. 18. 12:11

๐Ÿ“ฃ ์งˆ๋ฌธ์— ๋‹ตํ•ด๋ณด๊ธฐ

 

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

โœ”๏ธ resolve

โžฐ ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉด resolve ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ , then์œผ๋กœ ์ ‘๊ทผํ•ด์„œ 1์ดˆํ›„์— ๋น„๋””์˜ค๋ฅผ ๋ฉˆ์ถ”๊ณ , ์ œ๋ชฉ์„ ํ‘œ์‹œํ•œ๋‹ค. 

โžฐ then์ด promise ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด, ๋‹ค์Œ then์„ ์‹คํ–‰ํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.

โœ”๏ธ reject

โžฐ ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ์ฝ”๋“œ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด reject ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  catch๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

2๏ธโƒฃ resolve, reject ํ•จ์ˆ˜์—๋Š” ์ „๋‹ฌ์ธ์ž๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋„˜๊ธฐ๋Š” ์ „๋‹ฌ์ธ์ž๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

โœ”๏ธ ๊ฐ๊ฐ ํ˜ธ์ถœํ•˜๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

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

โœ”๏ธ catch() : promise๊ฐ€ ๊ฑฐ๋ถ€๋œ๋‹ค๋ฉด ํ˜ธ์ถœ๋˜๊ณ  ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ then() : promise๊ฐ€ ์ดํ–‰๋œ๋‹ค๋ฉด then์œผ๋กœ ๋ฐ˜ํ™˜๊ฐ’์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์ƒˆ promise๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ finally() : promise์˜ ์ƒํƒœ์™€๋Š” ๊ด€๊ณ„์—†์ด ๋ฌด์กฐ๊ฑด ํ˜ธ์ถœ๋œ๋‹ค.

 

4๏ธโƒฃ Promise.prototype.then ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์—‡์„ ๋ฆฌํ„ดํ•˜๋‚˜์š”?

โœ”๏ธ then() ๋ฉ”์„œ๋“œ๋Š” Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‘ ๊ฐœ์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.

     ํ•˜๋‚˜๋Š” promise๊ฐ€ ์ดํ–‰ํ–ˆ์„๋•Œ, ํ•˜๋‚˜๋Š” ๊ฑฐ๋ถ€ํ–ˆ์„ ๋•Œ๋ฅผ ์œ„ํ•œ ์ฝœ๋ฐฑํ•จ์ˆ˜์ด๋‹ค.

 

5๏ธโƒฃ Promise.prototype.catch ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์—‡์„ ๋ฆฌํ„ดํ•˜๋‚˜์š”?

โœ”๏ธ promise๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. catch ๋‚ด๋ถ€์ ์œผ๋กœ Promise.prototype.then(undefined, onRejected)์„ ํ˜ธ์ถœํ•˜๊ณ , ํ˜ธ์ถœํ•œ then์˜ ๋ฐ˜ํ™˜๊ฐ’์ธ promise๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. 

 

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

โœ”๏ธ ๋Œ€๊ธฐ(pending) : ์ดํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์€ ์ดˆ๊ธฐ ์ƒํƒœ

โœ”๏ธ ์ดํ–‰(fulfilled) : ์—ฐ์‚ฐ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์ƒํƒœ

โœ”๏ธ ๊ฑฐ๋ถ€(rejected) : ์—ฐ์‚ฐ์ด ์‹คํŒจํ•œ ์ƒํƒœ

 

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

โœ”๏ธ promise ํƒ€์ž…์„ ๋ฆฌํ„ดํ•  ๊ฒฝ์šฐ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค. await๋Š” promise๊ฐ€ ์ดํ–‰๋˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€๋  ๋•Œ๊นŒ์ง€ async ํ•จ์ˆ˜์˜ ์‹คํ–‰์„ ์ผ์‹œ ์ •์ง€ํ•˜๊ณ , promise๊ฐ€ ์ดํ–‰๋˜๋ฉด async ํ•จ์ˆ˜๋ฅผ ์ •์ง€ํ•œ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์‹คํ–‰ํ•œ๋‹ค.

 

8๏ธโƒฃ awit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์–ด๋–ค ๊ฐ’์ด ๋ฆฌํ„ด๋˜๋‚˜์š”?

โœ”๏ธ promise์—์„œ ์ดํ–‰๋œ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. ๋งŒ์•ฝ promise๊ฐ€ ๊ฑฐ๋ถ€๋˜๋ฉด await๋Š” ๊ฑฐ๋ถ€๋œ ๊ฐ’์„ ๋˜์ง„๋‹ค.

 

'CodeStates > Training' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

S2) Unit3. [์‹ค์Šต] fetch API  (0) 2023.01.19
S2) Unit3. [์‹ค์Šต] fs ๋ชจ๋“ˆ  (0) 2023.01.19
S2) Unit3. [์‹ค์Šต] Underbar  (0) 2023.01.17
S2) Unit2. [์‹ค์Šต] Beesbeesbees  (0) 2023.01.16
[์ฝ”ํ”Œ๋ฆฟ] Daily Coding  (0) 2023.01.13