Hi, There!
안녕하세요, 바오밥입니다.
목차
- 개요
- 본문
- Reference
개요
오늘은 자바스크립트의 async, await에 대해서 간단하게 알아보았습니다.
본문
async
async를 사용하면 항상 Promise를 반환합니다.
async function getName() {
return "Mike"
}
console.log(getName()) // Promise 반환
이를 이용하여 Promise의 .then() 메서드를 사용할 수 있습니다.
async function getName() {
return "Mike";
}
getName()
.then((name)=> {
console.log(name); // Mike
})
.catch() 메서드도 사용할 수 있습니다.
async function getName() {
throw new Error("err...")
}
getName()
.catch((err)=> {
console.log(err);
})
await
async 함수 내에서만 사용할 수 있으며, async가 반환한 Promise가 저장될 때까지 기다렸다가 실행됩니다.
function getName(name) {
return new Promise((res,rej)=> {
setTimeout (() => {
res(name)
}, 1000) // 1초후 name을 res로 반환함
})
}
async function showName() {
const result = await getName("mike") // 1초후 mike를 반환함
console.log(result)
}
showName()
async / await를 이용하여 promise를 대체
이전 글에서 작성했던 Promise를 async / await 를 사용하여 변경해 봅니다.
const order1 = () => {
return new Promise((res,rej)=> {
setTimeout(()=>{
res("1번 주문 완료");
},1000)
})
}
const order2 = (message) => {
console.log(message)
return new Promise((res,rej)=> {
setTimeout(()=>{
res("2번 주문 완료");
},3000)
})
}
const order3 = (message) => {
console.log(message)
return new Promise((res,rej)=> {
setTimeout(()=>{
res("3번 주문 완료");
},2000)
})
}
console.log("시작")
async function orders() {
try {
const result = await Promise.all([order1(), order2(), order3()]);
console.log(result);
} catch (e) {
console.log(e)
}
console.log("종료")
}
orders()
Reference
'Tech > [Lang] JS & TS' 카테고리의 다른 글
promise에 대해서 (0) | 2021.10.12 |
---|---|
클래스 (0) | 2021.10.07 |
상속과 프로토타입 (0) | 2021.10.05 |
함수 호출 메서드 (call, apply, bind) (0) | 2021.09.27 |
스케쥴링 메서드 (setTimeout, setInterval) (0) | 2021.09.24 |