본문으로 바로가기
COMMUNITY모든 이야기

async/await를 썼는데 forEach 문 내부에서 비동기 처리가 안 되고 바로 넘어가요.

빗방울 2026.10.31 04:45 2분 읽기 조회 10 · 추천 2

API로 받아온 사용자 ID 배열을 돌면서 각각의 상세 정보를 가져와 배열에 담으려고 합니다.

코드:

const users = [1, 2, 3];
const results = [];

async function fetchDetail(id) {
  return new Promise(resolve => setTimeout(() => resolve(`Data ${id}`), 100));
}

async function processUsers() {
  users.forEach(async (id) => {
    const data = await fetchDetail(id);
    results.push(data);
  });
  console.log('결과:', results);
}

processUsers();

오류: 결과: [] (빈 배열이 출력됨)

시도: fetchDetail 함수 앞에 await를 붙였고, forEach 콜백 함수에도 async를 추가해봤습니다.

질문: forEach 내부에서 await를 사용했는데 왜 비동기 작업이 완료될 때까지 기다리지 않고 바로 console.log가 실행되는 건가요?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글