일단 선택된 그룹 개수랑 콜백 함수(클로저) 인자로 받는
함수 새로 하나 만들고

functiom getDataList(selectedCount, callback){
    const resultList = [];
    for(let i=0; i<selectedCount; i++){
        데이터 불러오는 비동기 함수(i, (data)=>{
            resultList.push(data);
            if(resultList.length >= selectedCount){
                if(callback instanceof Function) callback(resultList);
            }
        })
    }
}

이렇게 놓고
흐름제어하는 메인 함수에서

getDataList((dataList)=>{
    console.log(dataList);
});

하면 찍힐거임
폰으로 치느라 개빡쎗다
오타 있는지 모르겠고 안되도 참고만 해