μμ±λ μ§νμ νλ‘λ―Έμ€λ κΈ°λ³Έμ μΌλ‘ pending μνμ΄λ€. μ΄ν λΉλκΈ° μ²λ¦¬κ° μνλλ©΄ λΉλκΈ° μ²λ¦¬ κ²°κ³Όμ λ°λΌ λ€μκ³Ό κ°μ΄ νλ‘λ―Έμ€μ μνκ° λ³κ²½λλ€.
μ±κ³΅β resolve ν¨μλ₯Ό νΈμΆν΄ νλ‘λ―Έμ€λ₯Ό fullfileld μνλ‘ λ³κ²½
μ€ν¨β reject ν¨μλ₯Ό νΈμΆν΄ rejected μνλ‘ λ³κ²½
νμλ©μλ then(fullfilled) . catch( rejected) , finally(ν λ²λ§..) λ±. λΉλκΈ° μ²λ¦¬ μνκ° λ³νλ©΄ νμ μ²λ¦¬ λ©μλμ μΈμλ‘ μ λ¬ν μ½λ°±ν¨μκ° μ νμ μΌλ‘ νΈμΆ λ¨. μ΄λ μ½λ°±ν¨μμ νλ‘λ―Έμ€μ κ²°κ³Όκ° μΈμλ‘ μ λ¬λλ€. λͺ¨λ νμ μ²λ¦¬ λ©μλλ νλ‘λ―Έμ€λ₯Ό λ°ννλ©° λΉλκΈ°λ‘ λμνλ€. promise λ₯Ό λ°ννκΈ°λλ¬Έμ chaining μ΄ κ°λ₯νλ€.
get, post, delete ..
patch β κ°μ²΄ννκ° μμλ κ·Έ μΌλΆλΆλ§ μμ ν λ.
put β κ°μ²΄λ₯Ό μμ ν λ체ν λ ..
xhrμ μ΄λ²€νΈνΈλ€λ¬, onload λ©μλκ° λΉλκΈ°λ‘ λμνκΈ° λλ¬Έμ΄λ€. λΉλκΈ° ν¨μλ₯Ό νΈμΆνλ©΄ ν¨μ λ΄λΆμ λΉλκΈ°λ‘ λμνλ μ½λλ¬Έμ΄ μλ£λμ§ μμλλΌλ κΈ°λ€λ¦¬μ§ μκ³ μ¦μ μ’ λ£λλ€. (μ¦, μ½μ€νμ΄ μ¦μλΉμμ§κ³ , νμ€ν¬ νμ μ μ₯λλ€.) console.log λ μ½μ€νμ μΆκ°λκ³ , μ½ μ€νμ μλ 컨ν μ€νΈλ€μ΄ μ λΆ μ€νμ΄ μλ£κ°λκ³ λΉμ΄μΌμ§λ§(μ½μ€νμ 1λ²μ 1κ°μ©λ§ μ²λ¦¬ κ°λ₯..) μ΄λ²€νΈ 루νμ μν΄μ μ½ μ€νμΌλ‘ νΈμλμ΄ μ€νλλ―λ‘ getν¨μλ‘ λ°μ΄ν°λ₯Ό μ λ°μ΄νΈνκΈ° μ μ console.log(todos)κ° μ€νλμ΄ undefinedκ° μΆλ ₯λκ² λλ€. console.logκ° μ°νλ μμ λ³΄λ€ λ¨Όμ μλ²μμ κ°μ μ μ‘λ°μλ, λ§μ°¬κ°μ§λ‘ λμνλ€.
getν¨μ νΈμΆ β μ΄λ²€νΈ νΈλ€λ¬ νμ€ν¬ ν μ΄λ β ν¨μ μ’ λ£ β μ΄ν μ½λλ¬Έ μ²λ¦¬ β νμ€ν¬ νμ μ΄λ²€νΈκ° μ½ μ€νμΌλ‘ μ΄λ β μ΄λ²€νΈ μ½λ μ€ν (?)
μλ¬λ νΈμΆμ λ°©ν₯μΌλ‘ μ νλλλ° setTimeoutμ λΉλκΈ° ν¨μλ‘ ν΄λΉ ν¨μκ° νΈμΆλ¨κ³Ό μ¦μμ μ’ λ£λλ©΄μ μ½ μ€νμμ μ κ±°λλ€. μ½λ°± ν¨μλ νμ€ν¬νμ μ μ₯λμλ€κ° μ½ μ€νμ΄ λΉλ©΄ μ΄λ²€νΈ 루νμ μν΄μ μ€νλλλ° μ΄ λ μ½λ°± ν¨μμ μ€ν 컨νμ€νΈμΈ νμ 컨νμ€νΈμ μ무κ²λ μκΈ° λλ¬Έμ νΈμΆμκ° μλκ±Έλ‘ μΈμλμ΄ catch λΈλ‘μμ μ μμ μΌλ‘ μλ¬κ° μ‘νμ§ μκΈ° λλ¬Έμ΄λ€.
//resolveλΌλ μ΄λ¦μ λ€λ₯Έκ±Έλ‘ λ°κΎΈλ©΄ error λ°μ
const req1 = () =>
new Promise(resolve => setTimeout(()=>resolve(1),1000));
const req2 = () =>
new Promise(resolve => setTimeout(()=>resolve(2),2000));
const req3 = () =>
new Promise(resolve => setTimeout(()=>resolve(3),3000));
//const μ μΈμ λ³μ κ° μ¬ν λΉ λΆκ°
let resonse = [];
req1()
.then(data => {
resonse.push(data);
return req2();
})
.then(data => {
resonse.push(data);
return req3();
})
.then(data => {
resonse.push(data);
console.log(res);
})
.catch(console.error);
let resonse = [];
Promise.all([req1(), req2(), req3()])
.then(result => resonse = result)
.catch(console.error);