promise
에서도 then을 지나치게 사용하면 콜백지옥과 같은 문제점이 발생할 수 있다. 이 때에 Async
와 Await
을 사용하여 promise
를 좀 더 간결하고 간편하게 동기적으로 실행되는것처럼 보이게 만들어 줄 수 있다. 함수 앞에 async
를 써주면 코드블록이 자동으로 promise
로 바뀐다. 그리고 함수안에서 await
을 딜레이가 필요한 부분 앞에 붙여주면 된다. 에러처리도 try
와 catch
를 사용하면 되기때문에 간편하다.
async function 함수명(){
await 비동기처리_메서드명();
}
async
를 붙이고await
을 붙이면 된다.Promise
를 사용하면 반드시 resolve
와 reject
를 호출해야 한다.
async
를 사용하면 함수의 코드 블록이 자동으로 Promise
로 변환 되어진다.
콜백지옥
이 떠오른다.
자바스크립트는 await
를 만나면 프라미스가 처리될 때까지 기다린다. 결과는 그 이후 반환된다. 프라미스가 처리되기를 기다리는 동안에 다른 일(다른 스크립트 실행, 이벤트 처리 등)을 할 수 있기 때문에, CPU 리소스가 낭비되지 않는다.
await
은 promise.then
보다 좀 더 세련되게 프라미스의 result
값을 얻을 수 있도록 해주는 문법이다. promise.then
보다 가독성이 좋고 쓰기도 좋다.