JS 2

promise

์•ฝ์†ํ•ด์ค˜ … promise์˜ ํ•„์š”์„ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒจํ„ด์œผ๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฌํ•œ ์ฝœ๋ฐฑ ํŒจํ„ด์€ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ๋˜ ์ฝœ๋ฐฑํ•จ์ˆ˜๋“ค์ด ์ง€์˜ฅ์„ ๋งŒ๋“ค์–ด ๋‚ด๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ์ด๋Ÿฐ์‹์œผ๋กœ์š” ๋ณด๊ธฐ๋งŒํ•ด๋„ ์ฝ๊ณ  ์‹ถ์ง€ ์•Š์•„์ง€๊ฒŒ ๋งŒ๋“œ๋Š” ๋งˆ๋ฒ•์„ ๋ถ€๋ฆฐ๋‹ต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋น„๋™๊ธฐ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•ด๋„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—๋Ÿฌ ์ฒ˜๋ฆฌ์—๋„ ๋ถˆํŽธํ•จ์„ ์ฃผ์ฃ . ์ด๋Ÿฌํ•œ ํ”„๋กœ๋ฏธ์Šค์˜ ํ•œ๊ณ„์™€ ๋ถˆํŽธํ•จ์œผ๋กœ ์ธํ•ด ES6์—์„œ๋Š” ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋‹ค๋ฅธ ํŒจํ„ด์œผ๋กœ promise๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. promise๋ž€? “A promise is an object that may produce a single value some time..

this

“๊ฐ์ฒด”๋Š” ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”„๋กœํผํ‹ฐ์™€ ๋™์ž‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ฌถ์€ ๋ณตํ•ฉ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋™์ž‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋Š” ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ, ์ฆ‰ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋–„ ๋ฉ”์„œ๋“œ๊ฐ€ ์ž์‹ ์ด ์†ํ•œ ๊ฐํŽ˜์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐ ํ•˜๋ ค๋ฉด ๋จผ์ € ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์‹๋ณ„์ž๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. const circle = { radius: 5, getDiameter() { return 2 * Circle.radius } }; console.log(circle.getDiameter()) // 10 ์œ„์˜ ์„ค๋ช…์„ ๋“ฃ๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ ๋ฌด์Šจ๋ง์ธ์ง€ ์ดํ•ด ๋˜์‹œ๋‚˜์—ฌ? ๋ฉ”์„œ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜(์ƒํƒœ)๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ์ฒด์•ˆ์˜ ..