async와 await는 Promise를 더욱 쉽게 쓸 수 있도록 해주는 문법이다.
function sleep(ms) {
return new Promise(reslove => setTimeout(resolve, ms)
}
async function process () {
console.log("안녕하세요")
await sleep(1000)
console.log("반갑습니다.")
}
process()
// 안녕하세요 (1초뒤) 반갑습니다
먼저, process 함수가 실행이 되면 console.log("안녕하세요")가 실행이 된 후에 await를 통해서 sleep함수가 끝날 때까지 기다렸다가 다음에 console.log("반갑습니다")가 실행이 된다.
이때 await는 async가 없으면 사용할 수 없다. 그래서 await가 포함되어져 있는 함수 앞에는 꼭 async를 사용해 주어야 한다.
async, await는 Promise를 내보낸다.
function sleep(ms) {
return new Promise (resolve => setTimeout(resolve, ms)
}
async function process() {
console.log("안녕하세요")
await sleep(1000)
console.log("반갑습니다")
retrun 1
}
process().then(value => {
console.log(value)
})
Promise를 내보내기 때문에 then메소드를 사용할 수 있다.