자바스크립트 async 함수의 반환 값
async
함수는 자바스크립트에서 비동기 작업을 다루는 데 사용되는 기능입니다. 이 함수들은 await
키워드와 함께 사용되어 비동기적인 작업을 수행하고, 작업이 완료된 후에 결과 값을 반환합니다.
async
함수의 반환 값은 Promise
객체입니다. Promise
객체는 비동기 작업의 상태와 결과를 나타내는데 사용되는 자바스크립트의 내장 객체입니다. Promise
객체는 다음과 같은 세 가지 상태를 가질 수 있습니다:
- 대기 (pending): 비동기 작업이 아직 완료되지 않은 상태입니다.
- 이행 (fulfilled): 비동기 작업이 성공적으로 완료된 상태입니다. 결과 값을 가지고 있습니다.
- 거부 (rejected): 비동기 작업이 실패한 상태입니다. 실패 사유를 가지고 있습니다.
async
함수 내에서 return
문으로 값을 반환하면, 해당 값은 Promise.resolve()
메소드를 사용하여 이행된 Promise
객체로 래핑됩니다. 이행된 Promise
객체는 await
키워드로 호출한 코드 블록에서 사용될 수 있습니다.
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
}
fetchData()
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
위 예시에서는 fetchData
함수가 비동기적으로 데이터를 가져오는 작업을 수행하고, response.json()
을 사용하여 JSON 데이터를 파싱한 후에 결과 값을 반환합니다. fetchData()
함수를 호출한 후에는 then
메소드를 사용하여 결과 값을 처리하거나, catch
메소드를 사용하여 에러를 처리할 수 있습니다.
async
함수의 반환 값은 항상 Promise
객체이므로, Promise
객체의 다양한 메소드를 이용하여 비동기 작업을 다루고 결과 값을 처리할 수 있습니다. 자세한 내용은 자바스크립트의 Promise
객체에 대한 문서를 참조하시기 바랍니다.