JS에서 비동기를 쉽게 가능하도록 도와준다. 주로 Promise 객체를 사용하여 비동기 처리를 한다.
async function fetchAndPrint() {
console.log(2);
const response = await fetch('https://jsonplaceholder.typicode.com/users');
console.log(7);
const result = await response.text();
console.log(result);
}
console.log(1);
fetchAndPrint();
console.log(3);
console.log(4);
console.log(5);
console.log(6);
위 코드를 언뜻보면, 순서대로 출력(동기)될 것 처럼 보인다.
// 오답
1
2
7
[리스폰스의 내용(result)]
3
4
5
6
하지만 aync는 비동기 처리되기 때문에 순서대로가 아닌,
pending 상태(즉, fulfilled/rejected를 기다리는 상태)에서 다른 코드를 먼저 실행한다.
// 정답
1
2
3
4
5
6
7
[리스폰스의 내용(result)]