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

비동기 함수에서 forEach를 썼는데 await가 안 먹고 바로 다음 코드가 실행돼요

빗방울 2026.10.31 12:58 1분 읽기 조회 17 · 추천 2

API로 데이터 리스트를 받아와서 하나씩 처리한 뒤에 마지막에 완료 메시지를 띄우려고 합니다.

코드:

async function processData() {
  const items = [1, 2, 3];

  items.forEach(async (item) => {
    await new Promise(resolve => setTimeout(resolve, 1000));
    console.log(item + '번 처리 완료');
  });

  console.log('모든 작업이 끝났습니다');
}

processData();

오류: 1, 2, 3번 처리 완료가 뜨기 전에 '모든 작업이 끝났습니다'가 가장 먼저 출력됩니다.

시도: forEach 안에 async/await를 넣었고, 함수 자체에도 async를 붙여봤습니다.

질문: forEach 내부의 await가 작동하지 않고 바로 다음 줄로 넘어가는 이유가 무엇인가요?

모든 이야기1455

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

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