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

과제로 여러 개의 설정 파일을 생성하는 기능을 구현하고 있습니다. 반복문을 통해 파일 시스템에 데이터를 기록하려 하는데, 실행 순서가 보장되지 않는 문제가 발생하고 있습니다.

코드:

const fs = require('fs').promises;

async function writeFiles() {
  const data = ['first', 'second', 'third'];
  
  data.forEach(async (text) => {
    await fs.writeFile(`${text}.txt`, text);
    console.log(`${text} written`);
  });
  
  console.log('All done');
}

writeFiles();

오류: All done

second written

first written

third written

시도: async/await를 사용하였으나 forEach 내부의 콜백 함수가 비동기로 동작하여 전체 흐름을 제어하지 못하는 것을 확인했습니다.

질문: forEach 대신 어떤 반복문을 사용해야 async/await가 의도한 대로 순차적으로 작동하여 'All done' 로그가 가장 마지막에 출력될까요?

모든 이야기1454

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

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