β¨ Promise λ?
ν₯ν μ¬μ©νκ² λ λΉλκΈ° μ°μ°μ κ²°κ³Όκ°μ μ²λ¦¬νλλ‘ λμμ£Όλ JS κ°μ²΄μ΄λ€.
λΉλκΈ° λ©μλμμ λκΈ° λ©μλμ²λΌ κ°μ λ°νν μ μλ€.
μμ )
const testing = new Promise((resolve, reject)
=> { if (something) resolve(something) else reject(error message) })
testing
.then(() => return something2)
.catch(() => return error)
.finally(() => return final)
β¨ Promise μ 3κ°μ§ μν:
Fulfilled: μ°μ°μ΄ μ±κ³΅μ μΌλ‘ μλ£λ μνμ΄λ€.
Rejected: μ°μ°μ΄ μ€ν¨ν μνμ΄λ€.
Pending: Resolve λ Reject κ° νΈμΆλκΈ° μ κΉμ§μ μκ°
β¨ .then(), .catch(), .finally()
then(callback1, callback2) μ ννλ‘ νμ©λλ€.
callback1: resolve λ μΌμ΄μ€λ₯Ό λ€λ£¨λ ν¨μ
callback2: reject λ μΌμ΄μ€λ₯Ό λ€λ£¨λ ν¨μ
let a = 10
const prom = new Promise((resolve, reject) =>{
if (a === 9) resolve(a)
else reject(a)
})
prom
.then(
()=>console.log('success'),
() => console.log('rejected...')
)
// 'rejected...'
callback 1, 2 λ λͺ¨λ μ΄μ promise μμ resolve λ‘ λ°νλ κ°μ μ λ¬μΈμλ‘ λ°λλ€.
Promise link λ .then() μ΄ promise κ°μ²΄λ₯Ό λ°ννμ§ μλλΌλ κ³μ μ΄μ΄μ§λ―λ‘, μΌμΌμ΄ reject μ λμνλ ν¨μλ₯Ό λ§λ€μ΄μ£Όμ§ μμλ λλ€. μλ¬λ₯Ό λ°λ‘ μ²λ¦¬ν΄μ£Όμ΄μΌ νλ κ²½μ°κ° μλλΌλ©΄, λ§μ§λ§μ catch λ‘ νλ²μ μ²λ¦¬ κ°λ₯νλ€.
β¨ catch()
μ΄μ Promise μμ reject λ κ°μ μ λ¬μΈμλ‘ λ°μ μ²λ¦¬νλ λ©μλμ΄λ€.
//μμ μμ μ°¨μ©
prom.then( () => console.log('success'))
.catch( (err) => console.log(err) ) // 10
β¨ finally()
Promise κ° settled λ μκ° λ°ννκ² λλ λͺ¨λ κ°μ μ²λ¦¬νλ λ©μλμ΄λ€.
μ λ¬μΈμλ₯Ό λ°μ§ μλλ€.
.then(onFinally, onFinally) // μ λμΌνλ€
prom.then((a)=>{ console.log(a) })
.catch((a) => console.log('caught!'))
.finally(() => console.log('finally..'))
// 'caught!'
// 'finally..
β¨ λ§λ¬΄λ¦¬
Promise λ λΉλκΈ° νλ‘κ·Έλλ°μ κΈ°μ΄μ΄λ€. νλ‘κ·Έλ¨μ ꡬμ±ν λ μ€ν μκ°μ΄ μ‘°κΈ κ±Έλ¦¬κ±°λ lagging ν μ μλ μμλ€μ νμ νμ¬ μ μ μ©ν μ μμ κ²μ΄λ€.
μ°Έκ³ μλ£
'π» DEV > Javascript & NodeJS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Javascript] Fetch API (0) | 2021.05.27 |
---|---|
[Javascript] Async ν¨μμ Await (0) | 2021.05.27 |
[Javascript] λΉλκΈ°, λκΈ° ν¨μ (Asynchronous, Synchronous) λ? (0) | 2021.05.27 |
[Javascript] Class (0) | 2021.05.13 |
[Javascript] κ°μ²΄μ Deep Copy (κΉμ 볡μ¬) (0) | 2021.05.09 |
λκΈ