async/await 문법을 사용한 Promise 기반의 동기적인 코드 작성
JavaScript에서 비동기 작업을 처리하기 위해 Promise가 많이 사용됩니다. Promise는 비동기 작업의 결과를 나타내는 객체로, then과 catch를 사용하여 비동기 작업의 성공과 실패를 처리할 수 있습니다.
그러나 Promise를 사용하면 연속된 비동기 작업을 처리하기가 어렵습니다. 이때 async/await 문법을 사용하면 비동기 작업을 동기적으로 처리할 수 있습니다. async/await은 ES2017부터 추가된 문법으로, 비동기 함수를 처리하고 결과를 반환하기 쉽게 만들어줍니다.
이제 async/await 문법을 사용하여 Promise 기반의 동기적인 코드를 작성해보겠습니다.
async function fetchUserData() {
try {
const response = await fetch('https://api.example.com/users');
const data = await response.json();
return data;
} catch (error) {
console.log('Error fetching user data:', error);
}
}
async function displayUserData() {
const userData = await fetchUserData();
console.log('User data:', userData);
}
displayUserData();
위 코드에서는 fetchUserData
라는 비동기 함수를 만들어 사용자 데이터를 가져오는 작업을 수행합니다. fetch
함수는 Promise를 반환하므로 await
키워드를 사용하여 비동기 작업이 완료될 때까지 대기합니다. 이후 response.json()
을 호출하여 응답 데이터를 JSON 형태로 변환하고 반환합니다.
displayUserData
함수에서는 fetchUserData
함수를 호출하여 사용자 데이터를 가져온 후 결과를 출력합니다. 이를 위해 await
키워드를 사용하여 비동기 작업의 완료를 기다립니다.
이제 위와 같이 async/await 문법을 사용하여 Promise 기반의 동기적인 코드를 작성할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
#javascript #asyncawait