Transparent White Star

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ณต๋ถ€ ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป
๐Ÿ“š then()์•ž์„  ๋น„๋™๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๋“ฑ๋ก๋œ ์ฝœ๋ฐฑ์„ ์‹คํ–‰ํ•ด์ค€๋‹ค.then()์€ Promise๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค1. fetch ํ•จ์ˆ˜๊ฐ€ url๋กœ request๋ฅผ ๋ณด๋‚ด๋ฉด Promise Pending ์ƒํƒœ๋ฅผ ๋ฆฌํ„ด.2. Promise๊ฐ€ Fulfilled ์ƒํƒœ๊ฐ€ ๋˜๋ฉด Promise์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ์ฝœ๋ฐฑ์˜ ์ฒซ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•œ๋‹ค.3. ๋งŒ์•ฝ, ์ฝœ๋ฐฑ์ด Promise๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด then ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ฆฌํ„ดํ•œ Promise๋„ ๋™์ผํ•œ ์ƒํƒœ์™€ ๊ฒฐ๊ณผ ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.4. ์ฝœ๋ฐฑ์ด Promise๊ฐ€ ์•„๋‹Œ ํ‰๋ฒ”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋ฉด, then ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ฆฌํ„ดํ•œ Promise๋Š” FulFilled ์ƒํƒœ๊ฐ€ ๋˜๊ณ  ๋ฆฌํ„ด๊ฐ’์„ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๊ฐ–๊ฒŒ๋œ๋‹ค.  then() ๋ฉ”์†Œ๋“œ์˜ ํ๋ฆ„ํ•œ ์ค„๋กœ ์ •๋ฆฌPromise๊ฐ€ Fulfilled ์ƒํƒœ๊ฐ€ ๋˜๋ฉด(๋น„๋™๊ธฐ ์ž‘์—…์ด ๋๋‚˜๋ฉด) ๋‹ค์Œ ์ž‘..
์ฝœ๋ฐฑ(Callback)์ด๋ž€?์–ด๋–ค ํ•จ์ˆ˜์˜ ์•„๊ทœ๋จผํŠธ๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑ ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•ด ์ค€๋‹ค.์ œ๊ณต๋˜๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜์— ์ฝœ๋ฐฑ์„ ๋„˜๊ฒจ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป await ํ•จ์ˆ˜Promise์˜ ์„ฑ๊ณต ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ›์•„์˜ค๋ ค๋ฉด ํ•จ์ˆ˜ ์•ž์— await์„ ์‚ฌ์šฉํ•œ๋‹คasync์€ ํ•จ์ˆ˜๋‚˜, ํŒŒ์ผ module์˜ ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ module์€ ES6 ๋ชจ๋“ˆ์„ ์˜๋ฏธ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป await์˜ ์—ญํ• fetchํ•จ์ˆ˜๋Š” Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.fetch ์•ž์— await๋ฌธ์ด ์žˆ์œผ๋ฉด Promise๊ฐ€ Fulfilled ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.Promise๋Š” ์„ธ ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ–๋Š”๋‹ค. Pending (๋ฏธ๊ฒฐ์ •) : ๋น„๋™๊ธฐ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์„ ๋•Œ Fulfilled (์„ฑ๊ณต) : ๋น„๋™๊ธฐ ์ž‘์—…์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‚ฌ์„ ๋•Œ Rejected (์‹คํŒจ) : ๋น„๋™๊ธฐ ์ž‘์—…์ด ์‹คํŒจํ–ˆ์„ ๋•Œ๋น„๋™๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด Promise๊ฐ€ ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์ด๋Š”, await๋กœ ํ™œ์šฉํ•œ๋‹ค.๐Ÿ”’ ..
๐Ÿ’ก fetch๋ž€ ?Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ดํ•œ๋‹คfetch()๋Š” console.log()๋ณด๋‹ค ํ›จ์”ฌ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— printEmployees() ํ˜ธ์ถœ ์•„๋ž˜ ๋” ๋งŽ์€ console.log()๋ฌธ์ด ์žˆ์—ˆ์–ด๋„ ๊ทธ ์ถœ๋ ฅ๋ฌธ๋“ค์ด ๋ชจ๋‘ ์‹คํ–‰๋˜๊ณ  ๋‚˜์„œ function() ์•ˆ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.๐Ÿ’ก Promise ๋ž€ ?๋น„๋™๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฐ’์„ ์•Œ๋ ค์ฃผ๋Š” ๊ฐ์ฒด์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฐ’์„ ์•Œ๋ ค์ค„ ๊ฒƒ์„ '์•ฝ์†'ํ•จfetch๋Š” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ”๋กœ ๋Œ๋ ค์ค„ ์ˆ˜๋Š” ์—†์œผ๋‹ˆ๊นŒ, ์ผ๋‹จ Promise๋ฅผ ๋Œ๋ ค์ฃผ๊ณ  ๋‚˜์ค‘์— ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฒฐ๊ณผ๊ฐ’์„ Promise์— ์ฑ„์›Œ ๋„ฃ์–ด์คŒ  Promise๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „ ์ฝœ๋ฐฑ ๊ธฐ๋ฐ˜getEmployees((response) => { json((response, (data)) => { cons..
โœ… || ์—ฐ์‚ฐ์ž|| ์—ฐ์‚ฐ์ž๋Š” ์ขŒ์ธก์˜ ๊ฐ’์ด falsy ๊ฐ’(0, "", false, null, undefined, NaN)์ผ ๋•Œ ์šฐ์ธก์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ user๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด("")์ด๋ฏ€๋กœ currentUser1์€ "Anonymous"๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. โœ… ?? ์—ฐ์‚ฐ์ž?? ์—ฐ์‚ฐ์ž๋Š” ์ขŒ์ธก์˜ ๊ฐ’์ด null ๋˜๋Š” undefined์ผ ๋•Œ๋งŒ ์šฐ์ธก์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
this๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค์›Œ๋“œ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. โœ… ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋„ this๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค !์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ thisํ™”์‚ดํ‘œ ํ•จ์ˆ˜์—์„œ thisํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ this์— ๋‹ด๊ธด๋‹คํ˜ธ์ถœํ•œ ๋Œ€์ƒ์— ๋”ฐ๋ผ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณ€ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ,arrow funtion์ด ์„ ์–ธ๋˜๋Š” ์ง์ „์— ๊ทธ๋•Œ ์œ ํšจํ•œ this ๊ฐ’๊ณผ ๋˜‘๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋™ํ•œ๋‹ค. this๊ฐ€ ํ•„์š”ํ•  ๋•Œ ?์™ธ๋ถ€์—์„œ ์—ฌ๋Ÿฌ ๊ฐ์ฒด์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์†ํ•ด ์žˆ๋Š” ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ผ ๋•Œ
yyezzzy
'๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)