저는 각 항목에 대해 동일한 순서로 일련의 작업을 실행하고 정보를 수집 한 다음 끝에 통계를 보내려고합니다. 예상대로 때문에 실행된다 (5 :nodejs가 foreach를 사용하여 순서대로 실행합니다.
let listOfItems = [];
assignedItems.forEach(async (item) => {
let id = item.myID;
totalItemCount += await itemRepository.getItemCount(id);
let itemDetail = await itemRepository.getDetails(id);
listOfItems.push(item.name);
}, this);
console.log(listOfItems.length); // 0 ??
VS
let listOfItems = [];
for (let i = 0; i < assignedItems.length; i++) {
let id = assignedItems[i].myID;
totalItemCount += await itemRepository.getItemCount(id);
let itemDetail = await itemRepository.getDetails(id);
listOfItems.push(itemDetail.name);
}
console.log(listOfItems.length); // 5 as expected
출력 사용의 foreach는 : (foreach는 나중에 실행되기 때문에) 0 출력에 사용 여기
는 예 코드 코드 실행이 기록됨)주요 문제는 foreach가 foreach 다음에 작성되는 console.logs 다음에 실행됩니다. 전나무를 수집하려고합니다. 모든 항목에 대한 모든 정보를 입력 한 다음 수집 한 데이터를 보냅니다.
대체 무엇을하고 있습니까? foreach를 사용하여 문제를 해결하려면 어떻게해야합니까?
답변하지 이내입니다을 스택 오버 플로우 지침 답변에는 실제 콘텐츠 자체가 포함되어야합니다. 이는 외부 링크가 시간이 지남에 따라 콘텐츠를 변경하거나 변경하는 습관을 가지며 장기적인 참조로 응답의 유용성을 없애기 때문입니다. – jfriend00
나는 좀 더 심층적 인 대답을 기대했다. – dGRAMOP