- Published on
Javascript - Promise
- Author
- Name
- yceffort
Promise
new Promise(executor)
executor
λ resolve
λ° reject
μΈμλ₯Ό μ λ¬ν μ€νν¨μλ₯Ό μλ―Ένλ€. μ€νν¨μλ resolve
μ reject
λ₯Ό λ°μ μ¦μ μ€νλλ€. μ€νν¨μλ λ³΄ν΅ λΉλκΈ° μμ
μ μμν ν, λͺ¨λ μμ
μ λλ΄λ©΄ resolve
λ₯Ό νΈμΆν΄μ Promise
λ₯Ό μ΄ννκ³ , μ€λ₯κ° λ°μν κ²½μ° reject
λ₯Ό νΈμΆν΄ κ±°λΆλλ€.
Promise
λ λ€μ μ€ νλμ μνλ₯Ό κ°μ§λ€.
- λκΈ°(pending): μ΄νλκ±°λ κ±°λΆλμ§ μλ μ΄κΈ° μν
- μ΄ν(fullfiled): μ°μ°μ΄ μ±κ³΅μ μΌλ‘ μλ£λ¨
- κ±°λΆ(rejected): μ°μ°μ΄ μ€ν¨
Promise.all(iterable)
iterable
λ΄μ λͺ¨λ νλ‘λ―Έμ€λ₯Ό μ΄ννλλ°, λμ μ΄λ€ νλ‘λ―Έμ€κ° κ±°λΆλ₯Ό νκ² λλ©΄ μ¦μ κ±°λΆνλ νλ‘λ―Έμ€λ₯Ό λ°ννλ€. λͺ¨λ νλ‘λ―Έμ€κ° μ΄νλλ κ²½μ°, νλ‘λ―Έμ€κ° κ²°μ ν κ°μ μμλλ‘ λ°°μ΄λ‘ λ°ννλ€.
Promise.race(iterable)
iterable
λ΄μ κ°μ₯ λΉ λ₯΄κ² μ΄ν/κ±°λΆ ν κ°μ λ°ννλ€.
Promise.reject()
μ£Όμ΄μ§ μ΄μ λ‘ κ±°λΆνλ Promise κ°μ²΄λ₯Ό λ°ννλ€
Promise.resolve()
μ£Όμ΄μ§ κ°μΌλ‘ μ΄ννλ Promiseλ₯Ό λ°ννλ€. then
μ΄ μλ κ²½μ°, λ°νλ νλ‘λ―Έμ€λ then
μ λ°λΌκ°κ³ λ§μ§λ§ μνλ₯Ό μ·¨νλ€.
function myAsyncFunction(url) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest()
xhr.open('GET', url)
xhr.onload = () => resolve(xhr.responseText)
xhr.onerror = () => reject(xhr.statusText)
xhr.send()
})
}