[JavaScript] Promise 톺아보기 🧐

mnzΒ·2021λ…„ 4μ›” 24일
3

JavaScript

λͺ©λ‘ 보기
7/8
post-thumbnail

이 글은 MZ's Devlog 둜 μ΄μ „λμŠ΅λ‹ˆλ‹€.




πŸ’‘ λ“€μ–΄κ°€λ©°

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 비동기 처리 닀루기와 μžλ°”μŠ€ν¬λ¦½νŠΈ Promise μ‰½κ²Œ μ΄ν•΄ν•˜κΈ°λ₯Ό 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€.

Promise 의 κ°œλ…κ³Ό resolve, reject μ—μ„œ μ—λŸ¬ 처리 방법 μ„€λͺ… 및 Promise.all(), Promise.race(), Promise.finally() 에 λŒ€ν•΄ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.




πŸ“ Promise μ •μ˜

MDN μ‚¬μ΄νŠΈμ˜ Promise μ •μ˜ Promise - JavaScript | MDN

Promise κ°μ²΄λŠ” 비동기 μž‘μ—…μ΄ λ§žμ΄ν•  미래의 μ™„λ£Œ λ˜λŠ” μ‹€νŒ¨μ™€ κ·Έ 결과의 값을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

이전에 비동기 μž‘μ—…μ„ μ²˜λ¦¬ν•  λ•ŒλŠ” 콜백 ν•¨μˆ˜λ‘œ 처리λ₯Ό ν•΄μ•Ό ν–ˆλŠ”λ°μš”, 콜백 ν•¨μˆ˜λ‘œ 처리λ₯Ό ν•˜κ²Œ λœλ‹€λ©΄ 비동기 μž‘μ—…μ΄ λ§Žμ•„μ§ˆ 경우 μ½”λ“œκ°€ μ‰½κ²Œ λ‚œμž‘ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.

Promise λ₯Ό μ΄μš©ν•˜λ©΄ 비동기적인 μƒν™©μ—μ„œ μ½”λ“œλ₯Ό 쑰금 더 λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•˜κ³  μ‹€ν–‰ν•˜λ„λ‘ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.




🐾 μ „μ—­ 객체

Promise λ₯Ό import λ₯Ό ν•˜μ§€ μ•Šμ•„λ„ Node.js λŸ°νƒ€μž„ ν™˜κ²½μ—μ„œ μ „μ—­ 객체 Promise λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

console.log(Promise);
$ node index.js
[Function: Promise]

✍ μƒμ„±μžλ‘œ Promise 객체 λ§Œλ“€κΈ° (pending)

μƒμ„±μžμ˜ 인자둜 executor ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

μƒμ„±μžλ₯Ό ν†΅ν•΄μ„œ Promise 객체λ₯Ό λ§Œλ“œλŠ” μˆœκ°„ pending (λŒ€κΈ°) μƒνƒœλΌκ³  ν•©λ‹ˆλ‹€.

const myPromise = new Promise(/* executor */);

......



μƒˆλ‘œμš΄ λΈ”λ‘œκ·Έμ—μ„œ κΈ€ 전체 λ‚΄μš©μ„ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

profile
λΈ”λ‘œκ·Έ μ΄μ „ν–ˆμŠ΅λ‹ˆλ‹€ πŸ‘‰ https://mnxmnz.github.io

2개의 λŒ“κΈ€

comment-user-thumbnail
2021λ…„ 4μ›” 24일

μ™„μ „ κΉ”λ”ν•˜κ³  μ™„λ²½ν•œ μ •λ¦¬λ„€μš”πŸ‘ λ©‹μ Έμš”~~

1개의 λ‹΅κΈ€