Promise
new Promise
Promiseλ classμ΄κΈ°μnewν€μλλ₯Ό ν΅ν΄Promiseκ°μ²΄λ₯Ό μμ±Promiseλ λΉλκΈ° μ²λ¦¬λ₯Ό μνν μ½λ°±ν¨μλ₯Ό μΈμλ‘ λ°λλ°, μ΄ μ½λ°±ν¨μλresolve,rejectν¨μλ₯Ό μΈμλ‘ μ λ¬λ°μPromiseκ°μ²΄κ° μμ±λλ©΄ μ½λ°±ν¨μλ μλμΌλ‘ μ€νλ¨μ½λκ° μ μ²λ¦¬λμλ€λ©΄
resolveν¨μλ₯Ό νΈμΆνκ³ , μλ¬ λ°μ μrejectν¨μλ₯Ό νΈμΆlet promise = new Promise((resove, reject) => { // 1. μ μμ μΌλ‘ μ²λ¦¬λλ κ²½μ° resolveμ μΈμμ κ° μ λ¬ resolve(value); // 2. μλ¬ λ°μμ rejectμ μΈμμ μλ¬λ©μμ§ μ λ¬ reject(value); })
Promise κ°μ²΄μ λ΄λΆ νλ‘νΌν°
new Promiseκ° λ°ννλ Promise κ°μ²΄λstate,resultλ΄λΆ νλ‘νΌν°λ₯Ό κ°μ§λ€λ§, μ§μ μ κ·Όν μ μκ³
.then,.catch,.finallyλ©μλ μ¬μ©ν΄ μ κ·Ό κ°λ₯State
κΈ°λ³Έ μνλ
pending. λΉλκΈ° μ²λ¦¬λ₯Ό μνν μ½λ°±ν¨μκ° μ μλνλ€λ©΄ βfulfilledλ‘ λ³κ²½, μλ¬ λ°μ μrejected
Result
κΈ°λ³Έ μνλ
undefinedλΉλκΈ° μ²λ¦¬λ₯Ό μνν μ½λ°±ν¨μκ° μ μλνμ¬resolve(value)νΈμΆλλ©΄ β valueλ‘, μλ¬ λ°μν΄reject(error)νΈμΆλλ©΄ βerrorλ‘ λ³κ²½
then, catch, finally
then
μ½λ°±ν¨μμ μμ±νλ μ½λλ€μ΄ μ μ²λ¦¬λμλ€λ©΄
resolveν¨μ νΈμΆ β.thenλ©μλλ‘ μ κ·Ό κ°λ₯.thenμμμ 리ν΄ν κ°μ΄PromiseλΌλ©΄Promiseλ΄λΆ νλ‘νΌν°resultλ₯Ό λ€μ.thenμ μ½λ°±ν¨μμ μΈμλ‘ λ°μμ΄Promiseκ° μλλΌλ©΄ 리ν΄ν κ°μ.thenμ μ½λ°±ν¨μ μΈμλ‘ λ°μμ¬ μ μμ
Catch
μ½λ°±ν¨μμ μμ±ν μ½λμ μλ¬ λ°μ μ
rejectν¨μλ₯Ό νΈμΆνκ³.catchλ©μλλ‘ μ κ·Ό κ°λ₯
Finally
μ½λ°±ν¨μμ μμ±ν μ½λλ€μ΄ μ μ μ²λ¦¬ μ¬λΆμ κ΄κ³ μμ΄
.finallyλ©μλλ‘ μ κ·Ό κ°λ₯
Promise Chaining
λΉλκΈ° μμ μ μμ°¨μ μΌλ‘ μ§νν΄μΌ νλ κ²½μ°
Promise all()
μ¬λ¬ κ°μ λΉλκΈ° μμ μ λμμ μ²λ¦¬νκ³ μΆμ λ μ¬μ©
μΈμλ‘λ λ°°μ΄μ λ°μΌλ©°, ν΄λΉ λ°°μ΄μ μλ λͺ¨λ
Promiseμμ μ½λ°±ν¨μ λ΄ μμ±νλ μ½λλ€μ΄ μ μμ μΌλ‘ μ²λ¦¬λμλ€λ©΄ κ²°κ³Όλ₯Ό λ°°μ΄μ μ μ₯ν΄ μλ‘μ΄Promiseλ₯Ό λ°νλλΆμ΄, μΈμλ‘ λ°μ λ°°μ΄μ
Promiseμ€ νλλΌλ μλ¬ λ°μ μ, λλ¨Έμ§Promisestateμ μκ΄μμ΄ μ¦μ μ’ λ£
Last updated