03. async/await
async/await
async/await λ¬Έλ²μ ES8μ ν΄λΉνλ λ¬Έλ²μΌλ‘μ, Promise λ₯Ό λμ± μ½κ² μ¬μ© ν μ μκ² ν΄μ€λλ€.
κΈ°λ³Έμ μΈ μ¬μ©λ²μ μμλ΄ μλ€.
const sleep = (ms) => {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function process() {
console.log('μλ
νμΈμ!');
await sleep(1000);
console.log('λ°κ°μ΅λλ€.!');
}
process();// κ²°κ³Ό)
μλ
νμΈμ!
λ°κ°μ΅λλ€.!async/await λ¬Έλ²μ μ¬μ©ν λμλ, ν¨μλ₯Ό μ μΈ ν λ ν¨μμ μλΆλΆμ async ν€μλλ₯Ό λΆμ¬μ£ΌμΈμ. κ·Έλ¦¬κ³ Promise μ μλΆλΆμ await μ λ£μ΄μ£Όλ©΄ ν΄λΉ νλ‘λ―Έμ€κ° λλ λκΉμ§ κΈ°λ€λ Έλ€κ° λ€μ μμ
μ μν ν μ μμ΅λλ€.
μ μ½λμμλ sleep μ΄λΌλ ν¨μλ₯Ό λ§λ€μ΄μ νλΌλ―Έν°λ‘ λ£μ΄μ€ μκ° λ§νΌ κΈ°λ€λ¦¬λ Promise λ₯Ό λ§λ€κ³ , μ΄λ₯Ό process ν¨μμμ μ¬μ©ν΄μ£Όμμ΅λλ€.
ν¨μμμ async λ₯Ό μ¬μ©νλ©΄, ν΄λΉ ν¨μλ κ²°κ³Όκ°μΌλ‘ Promise λ₯Ό λ°ννκ² λ©λλ€. λ°λΌμ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό μμ± ν μ μμ΅λλ€.
async ν¨μμμ μλ¬λ₯Ό λ°μ μν¬λμλ throw λ₯Ό μ¬μ©νκ³ , μλ¬λ₯Ό μ‘μλΌ λμλ try/catch λ¬Έμ μ¬μ©ν©λλ€.
EX1)
new Promise λ‘ μ μ νλ μ½λ
then catch μ€ννλ μ½λ
ES8λ²μ async await μ€ννλ μ½λ
Last updated
Was this helpful?