비동기통신처리는 다양한 방법이 있다. 그 중 Promise 비동기 코드를 사용하면 try/catch 대신에 catch()메서드를 사용해 예외처리를 해야한다. 그렇지 않을 경우 예외처리가 난해 해지거나, 누락하는 경우가 발생한다.
이러한 불편한 점을 해결하기 위해
ES7에서 async, await가 생겨난 것이다.
async는 function 앞에 위치한다.
async function func(){ return 1; }
async가 붙은 함수는 반드시 프라미스를 반환하고, 프라미스가 아닌 것은 프라미스로 감싸 반환한다.
자바스크립트는 await를 만나면 프라미스가 처리될 때 까지 기다린다.
그래서 결과는 그 이후에 반환된다.
await는 async함수 안에서만 존재let num = await promise;