async/await를 함께 사용하면 읽고, 쓰기 쉬운 비동기 코드를 작성할 수 있습니다.
async는 function앞에 위치한다
async function f() {
return 1;
}
async가 붙은 함수는 반드시 프라미스를 반환하고 프라미스가 아닌 것은 프라미스로 감싸 반환하다.
await는 async 함수 안에서만 동작한다
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("완료!"), 1000)
});
let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)
alert(result); // "완료!"
}
f();
await는 프라미스가 처리되면 그 결과와 함께 실행이 재기되기 때문에 기다리는 동안 엔진이 다른 일을 할 수 있기에 cpu 리소스가 낭비되지 않는다. 가독성도 promise.then 보다 좋다
일반함수에서는 await를 사용할 수 없다 문법 에러 발생