β.λΉλκΈ°μ μΌλ‘ μ€ν λλ€λ κ²μ΄ 무μμΌκΉ?
νλμ λμμ΄ μλ£λμ§ μμλ λ€μ μ½λκ° μ€ν λλ€λ κ²μ μλ―Ένλ€.
βοΈλΉλκΈ° νΉμ±
μλ²μ μμ²μ 보λ΄κ³ κ²°κ³Όκ° λμμ€μ§ μμλ λ€μ μ½λλ₯Ό μ€ν νλ€.
β.κ·Έλ¬λ©΄ μ΄κ² μ νμν΄?
μΉμμ μλ²μ λ°μ΄ν°λ₯Ό μμ²νμλ μμ²μ΄ μλ£λκΈ° μ κΉμ§λ μ무κ²λ μ€νλμ§ μλλ° κ·Έ μ΄μ λ νλμ νλ‘κ·Έλ¨μ μ€ννλ λ° λ§μ μκ°μ΄ μμ λκΈ° λλ¬Έμ΄κΈ°λ νλ€.
κ·Έλ λ€λ©΄ μ΄λ»κ² ν΄μΌ λΉ λ₯΄κ² μ€νν΄μΌν κΉ? μ€ν μμκ° μμ°¨μ μ΄μλλΌ λΉ λ₯΄κ² λΆλ¬μ¬ μ μλ κ² λΆν° κ°μ Έμ€λ©΄ μ΄λ¨κΉ? μλ₯Ό λ€λ©΄ μλ²μμ μ΄λ―Έμ§λ₯Ό κ°μ Έμ¨λ€κ³ ν΄λ³΄μ..
μ΄λ―Έμ§μ ν¬κΈ°μ λ€νΈμν¬μ νκ²½μ λ°λΌ μ€νμ΄ λΆκ°ν κ²½μ°κ° λ°μν μκ° μλ€. μ΄λ λΉλκΈ° μ²λ¦¬κ° νμν κ²μ΄λ€.
fetch ν¨μλ 리νμ€νΈλ₯Ό 보λ΄κ³ promise κ°μ²΄λ₯Ό 리ν΄νλ©° κ·Έ κ°μ²΄μ then λ©μλλ‘ μ½λ°±μ βοΈλ±λ‘μ΄ λλ€. μ½λ°±μ μλ²λ‘λΆν° 리μ€ν°μ€ λ°μμ λ μ€νλλ€.
λν, ν΄λΉ νλ‘λ―Έμ€ κ°μ²΄κ° pending μνμμ fulfilled μνκ° λμμλ μ€νν μ½λ°± λ±λ‘ν μ μμΌλ©°,
리μ€ν°μ€κ° μμ νλ‘λ―Έμ€ κ°μ²΄κ° μ€μ λ‘ pending μμ fulfilled μνκ° λλ©΄ λ±λ‘ν΄λ μ½λ°±μ΄ μ€νλκ³ κ·Έ μμ μ±κ³΅ κ²°κ³Όκ° μ½λ°±μ νλΌλ―Έν°λ‘ λμ΄μ€κ² λλ€.
console.log('start!);
fetch('')
.then((response) => response.text()) // β μμ
μ±κ³΅ κ²°κ³Ό
.then((result) => { console.log(result); });//①첫 λ²μ§Έ μ½λ°±μ΄ μ€νλκ³ λλ©΄ μ€ν
console.log('End');
μμ μμμμ start β end β then λ©μλμ λ±λ‘λμ΄λμλ μ½λ°±μ΄ μμλλ‘ μ€ν
fetch ν¨μλ promise κ°μ²΄λ₯Ό 리ν΄νλ€.
μ¬κΈ°μ promise κ°μ²΄λ μ΄λ€ μμ μ κ΄ν βμν μ 보βλ₯Ό κ°κ³ μλ κ°μ²΄μ΄λ€.(μλ°μ€ν¬λ¦½νΈμμ λΉλκΈ°λ₯Ό κ°νΈνκ² μ²λ¦¬ν μ μκ² λμμ£Όλ object )

Promise κ°μ²΄λ ν¬κ² 3κ°μ§ μ€ νλμ μνλ₯Ό κ°μ§λ€.
pending μνfulifilled μνrejected μν

π€Β κ·Έλ λ€λ©΄ fulfilled μνμ κ°μ²΄μ rejected μνμ κ°μ²΄λ₯Ό λ§λ€κ³ μΆμΌλ©΄ μ΄λ»κ² μ½λλ₯Ό μμ±ν΄μΌν κΉ?
fulfilled μνμ κ°μ²΄
const x = Promise.resolve('success);
rejected μμ±μ κ°μ²΄
const x = Promise.reject(new Error('fail'));
리μ‘νΈλ₯Ό 곡λΆνλ€κ° μ€μνκ² λμ€λ μλ°μ€ν¬λ¦½νΈμ λΉλκΈ°μ λν΄ μ’ λ μμ보μλ€. μμ§μ μ μλΏμ§ μμ κ°λ μ΄μ§λ§ μμ λ₯Ό λ§μ΄ λ΄μΌκ² λ€.