
aync는 function 앞에 위치하며, function 앞에 async를 붙이면 해당 함수는 항상 Promise를 반환한다. Promise가 아닌 값을 반환하더라도, resolved promise로 이행된 promise가 반환되도록 한다.
async function sample() {
return 'result';
}
sample.then(res => console.log(res))
await은 async 함수 안에서만 동작한다. await은 promise가 처리될 때까지 기다렸다가, 이행된 후 그 결과가 반환된다. promise의 이행을 기다리는 동안 다른 스크립트를 실행하거나, 이벤트를 처리하는 일을 할 수 있기 때문에 CPU 리소스를 낭비하지 않게된다.
단, 일반 함수에는 await를 사용할 수 없다.
async function wait() {
await new Promise(resolve => setTimeout(resolve, 1000));
return 10;
}
function f() {
wait().then(result => console.log(result));
}
f();
참고
async와 await