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

Node.js의 async/await와 forEach 루프 내 비동기 처리 순서 문제

빗방울 2026.10.30 01:30 2분 읽기 조회 4 · 추천 1

과제의 일환으로 API를 통해 여러 사용자의 데이터를 순차적으로 가져와 배열에 저장하는 기능을 구현하고 있습니다.

코드:

const axios = require('axios');

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

async function fetchData() {
    users.forEach(async (id) => {
        const response = await axios.get(`https://jsonplaceholder.typicode.com/users/${id}`);
        results.push(response.data.name);
    });
    console.log('결과:', results);
}

fetchData();

오류: 결과: [] (데이터가 모두 채워지기 전에 빈 배열이 출력됨)

시도: async/await 키워드를 사용했음에도 불구하고 forEach 내부의 비동기 작업이 완료될 때까지 기다리지 않고 다음 라인이 실행되는 것을 확인했습니다.

질문: forEach 루프 내에서 await를 사용하여 모든 비동기 작업이 완료된 후 결과를 출력하게 하려면 어떻게 수정해야 합니까?

모든 이야기1464

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

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