
async는 function 앞에 위치한다.
async function f() {
return 1;
}
async가 붙은 함수는 항상 promise를 반환한다.
async function f() {
return 1;
}
const result = f().then();
console.log(result);

-> console 창에 찍어봤을 때 1이 출력되지 않고 Promise가 출력된다.
-> 1은 Promise의 PromiseResult값으로 들어갔다.
await는 async 함수 안에서만 동작한다.
let value = await promise;
javascript는 await 키워드를 만나면 promise가 처리될 때까지 기다리고 결과는 그 이후 반환된다.
1초 뒤 이행되는 promise
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("완료!"), 1000)
});
let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)
console.log(result); // "완료!"
}
f();

-> async와 await가 없으면 console.log가 먼저 실행되어 PromiseResult가 undefined이다.
