Posts
Q&A
return ์๊ณ ์๊ณ ์ฐจ์ด ์ง๋ฌธ๋๋ฆฝ๋๋ค...!
Return์ด ์๋ ๊ฒฝ์ฐ recurํจ์ ๋ด๋ถ ๋์ (3๋ฒ ์์๊น์ง ์์ ๋์ผ ๋ฐ๋ผ์ 4๋ฒ๋ถํฐ ์งํ)์ดํ return์ ํจ์ผ๋ก์จ recur ํจ์๊ฐ ์ข ๋ฃ๋จ **์ฆ ์ฝ์คํ์ด ๋น์์ ธ ์๋ ์ํ์ด๋ฉฐ ์ดํฐ๋ ์ดํฐ์ ๊ฐ์ด ๋ชจ๋ ์๋น๋์ง ์์ ์ํ ์ด๋ฒคํธ ๋ฃจํ์ ์ํด ์ฝ์คํ์ด ๋น์์ ธ ์๊ธฐ ๋๋ฌธ์ ํ์คํฌํ์ ์๋ ์ฝ๋ฐฑ ํจ์๋ก ์ ๋ฌ๋ recurํจ์๊ฐ ์ฝ์คํ์ผ๋ก ์ฎ๊ฒจ์ ธ ์คํ๋จ ์ด๋ then๋ฉ์๋๋ก ์ ๋ฌ๋ ์ฝ๋ฐฑ ํจ์์ ์ธ์ ๊ฐ์ resolve๋ ๊ฐ 11์ด๋ฉฐ ์ด ๊ฐ์ด recurํจ์ ์ธ์๋ก ์ ๋ฌ๋๋ฉฐ ์ฌ๊ท์ ์ผ๋ก ์คํ๋๋ฉด์ ๋จ์์๋ ์ดํฐ๋ ์ดํฐ์ ๊ฐ์ ์๋น ์ดํ while๋ฌธ์ ๋ฃจํํ๋ฉฐ ๊ฒฐ๊ณผ๊ฐ์ ์ฐจ๋ก๋๋ก ํฉ์ฑํ์ฌ log์ ์ถ๋ ฅ
- 0
- 3
- 1K
Q&A
return ์๊ณ ์๊ณ ์ฐจ์ด ์ง๋ฌธ๋๋ฆฝ๋๋ค...!
* ํธ์๋ฅผ ์ํด (n) => Promise.resolve(n + 10)ํจ์๋ a1 (n) => n + 100ํจ์๋ a2๋ผ๊ณ ์นญํ๊ฒ ์ต๋๋ค.Return์ด ์๋ ๊ฒฝ์ฐ recurํจ์ ๋ด๋ถ ๋์acc = f(acc ,a)์ ์ํด a1 ํจ์์ ํธ์ถ๋ก Promise์ resolveํจ์๊ฐ ํธ์ถ๋์ด fulfilled์ํ(Promise {: 11})์ ํ๋ก๋ฏธ์ค ๊ฐ์ด acc์ ๋ด๊น acc๋ Promise์ ์ธ์คํด์ค ์ด๋ฏ๋ก ์ฝ๋ฐฑ์ผ๋ก recurํจ์๋ฅผ ์ ๋ฌํ๋ acc.thenํจ์ ํธ์ถ ์ด๋ acc.then๋ฉ์๋๊ฐ ํธ์ถ ๋๋ฉด์ ์ฝ๋ฐฑํจ์๋ฅผ ํ์คํฌํ์ ์ ๋ฌ ์ดํ return์ด ์์ผ๋ฏ๋ก ๋๊ธฐ์ ์ผ๋ก while๋ฌธ ๋ฃจํ ๋ฃจํ์ ์ํด a2(acc) === a2(Promise {: 11}) ์ด๊ธฐ ๋๋ฌธ์ a2ํจ์ ํธ์ถ ๊ฒฐ๊ณผ๊ฐ์ด acc์ ์๋ํ์ง ์์ ๊ฐ([object Promise]100)์ด ๋ด๊น; ์ดํฐ๋ ์ดํฐ์ ๋ง์ง๋ง ์์์ธ log(acc) ์ฆ log([object Promise]100) ํธ์ถ ๋์ด ์ถ๋ ฅ ์ดํ ํ์คํฌํ -> ์ฝ์คํ ์ผ๋ก ์ฎ๊ฒจ์ง ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋๋ ์์ ์๋ ์์์ค์ฝํ์ ์ดํฐ๋ ์ดํฐ์ ๊ฐ์ด ๋ชจ๋ ์๋น ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ while๋ฌธ์ ์คํํ์ง ์๊ณ recurํจ์ ์ข ๋ฃ
- 0
- 3
- 1K