π‘ νλ‘λ―Έμ€μ
then
λ©μλλ₯Ό 체μ΄λ νμμΌλ‘ νΈμΆνλ κ² λ³΄λ€ κ°λ μ±μ λμΌ μ μλ€.
async function getCode() {
return βMikeβ
}
async
ν€μλλ₯Ό λΆμ΄λ©΄ νμ νλ‘λ―Έμ€λ₯Ό λ°ννλ€.async function getName() {
return βMikeβ;
}
console.log(getName()); // promise { <pending> }
then
λ©μλλ₯Ό μ¬μ©ν μ μλ€.async function getName(name) {
return new Promise ((resolve, reject) => {
setTimeout(() => {
resolve(name);
}, 2000);
})
}
getName(βMikeβ).then((name) => {
console.log(name); // 2μ΄ν - Mike
})
then
μ μ¬μ©νμ¬ nameμ΄ return
λλ λͺ¨μ΅then
μ νλ‘λ―Έμ€ κ°μ²΄μ result κ°μ λ€μ ν¨μμ μΈμλ‘ μ¬μ© κ°λ₯ νλ€.function getName(name) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(name);
}, 2000)
})
}
async function showName() {
const result = await getName(βMikeβ);
console.log(result);
}
showName();
await
ν€μλλ async
κ° λΆμ ν¨μ λ΄λΆμμλ§ μ¬μ© κ°λ₯νλ€.await
κ° λΆμΌλ©΄ ν΄λΉ ν¨μκ° μλ£λ λ κΉμ§ κΈ°λ€λ Έλ€κ° λ¦¬ν΄ κ°μ λ°ννλ€.then
μ ν΅ν νλ‘λ―Έμ€ μ²΄μ΄λ λ³΄λ€ κ°λ
μ±μ λμΈλ€.const f1 = () => {
return new Promise((res, rej) => {
setTimeout(() => {
res(β1λ² μ£Όλ¬Έ μλ£β);
}, 1000);
});
};
const f2 = (message) => {
console.log(message);
return new Promise((res, rej) => {
setTimeout(() => {
res(β2λ² μ£Όλ¬Έ μλ£β);
}, 3000);
});
};
const f3 = (message) => {
console.log(message)
return new Promise((res, rej) => {
setTimeout(() => {
res(β3λ² μ£Όλ¬Έ μλ£β);
}, 2000);
});
};
console.log(βμμβ);
f1()
.then((res) => f2(res))
.then((res) => f3(res))
.then((res) => console.log(res))
.catch(console.log)
.finally(() => {
console.log(βλβ);
})
res
μνμμ result
μ ν λΉλλ κ°μ then
μ ν΅ν΄ λ€μ ν¨μμ μ λ¬νλ λ°©μμ΄λ€.async_await
ꡬ문μΌλ‘ 리ν©ν λ§ ν΄λ³΄μasync function order() {
const result1 = await f1()
const result2 = await f2(result1);
const result3 = await f3(result2);
console.log(result3);
console.log(βμ’
λ£β);
}
order();
order()
κ° νΈμΆλλ©΄ result1
μ f1()
μ 리ν΄κ°μ 1μ΄ νμ ν λΉνλ€.await
ν€μλλ₯Ό μ¬μ©νκΈ° λλ¬Έμ λ€μ ꡬ문μΌλ‘ λμ΄κ°μ§ μλλ€.result1
κ° (β1λ² μ£Όλ¬Έ μλ£β)μ f2()
ν¨μμ λκ²¨μ£Όκ³ 2μ΄ ν result2
λ³μμ 리ν΄κ°μ ν λΉνλ€await
κ΅¬λ¬Έμ΄ λλλ©΄ result3
λ‘ ν λΉλ κ°μ console.log()
λ‘ μ°κ³ μ’
λ£κΉμ§ μ°κ³ μ’
λ£λλ€.async_await
ꡬ문μμλ Promise.all
μ μ¬μ© ν μ μλ€.