배열 항목들을 하나씩 DB에 저장한 다음 완료 로그를 찍으려고 하는데, 저장이 끝나기 전에 로그부터 찍혀요.
async function run() {
items.forEach(async (item) => {
await save(item);
});
console.log("끝");
}
실행하면 "끝"이 제일 먼저 나오고 그 다음에 저장들이 뒤늦게 찍힙니다.
끝
저장 1
저장 2
저장 3
분명 콜백 안에 await를 걸었는데 왜 forEach는 이걸 안 기다리고 그냥 지나가버리나요? 각 저장을 순서대로 다 기다린 다음에 "끝"을 찍고 싶은데 어떻게 해야 하나요?