coord2Address callback 순서 뒤바뀜 현상이 있습니다

var markers = [];

            var mapContainer = document.getElementById('map'), // 지도를 표시할 div
                mapOption = {
                  center: new kakao.maps.LatLng(35.850580, 126.574942), // 지도의 중심좌표
                  level: 13 // 지도의 확대 레벨
                };

            // 지도를 생성합니다
            var map = new kakao.maps.Map(mapContainer, mapOption);
            var geocoder = new kakao.maps.services.Geocoder();

            var callback =  function(result, status) {
              if (status === daum.maps.services.Status.OK) {
                if(<%=gps_cnt%> > 0){  // gps 값이 있으면
                  gps_data_kakao[total_dc_cnt].road_address_name = result[0].address.address_name;
                  total_dc_cnt++;
                }
              }
                displayPlaces(gps_data_kakao);
            };

            // 좌표로 법정동 상세 주소 정보를 요청합니다
            if(<%=gps_cnt%> > 0){   // gps 값이 있으면
              for(var i = 0 ; i < dc_gps_long.length ; i++){
                geocoder.coord2Address(dc_gps_long[i], dc_gps_lati[i], callback);
              }
            }else{
              geocoder.coord2Address(0, 0, callback);
            }

임베디드 모듈에서 gps 값을 받아서 웹에서 받으면 그 위치를 실시간으로 표시하는 작업을 하고 있는데…
위와 같이 하면 잘 되긴 합니다만
결과값이 뒤죽박죽 섞여서 나옵니다.
다른 답글 보면 foreach 을 사용해보라고 하는데
위도, 경도 두개값을 입력할 때는 어떻게 해야할지 모르겠습니다.

https://devtalk.kakao.com/t/topic/55564/8

의 예시 코드를 참고해보세요
위/경도 두 개의 값을 한벌로 사용하는 거니 다를 게 없는데요

아직 제가 javascript 초보라서요. ㅜㅜ
애초에 저 코드는 coord2Address 이 아닌 addressSearch 함수를 썼고
파라미터도 두개를 넣어야 되는데 저기는 1개를 넣었고…
코드를 간소화 한다고 아래처럼은 했는데…
도저히 답변 주신 코드처럼 수정을 못하겠습니다;
for(var i = 0 ; i < dc_gps_long.length ; i++){
geocoder.coord2Address(dc_gps_long[i], dc_gps_lati[i], function(result, status) {
if (status === daum.maps.services.Status.OK) {
gps_data_kakao[total_dc_cnt].road_address_name = result[0].address.address_name;
total_dc_cnt++;
}
displayPlaces(gps_data_kakao);
});
}

예시를 참고로 값이 어떻게 넘어가는 지 체크하면서 해보시면 되는데요…
정답은 아닐 수 있지만 아래 참고해 보세요.
(참고로… 전 개발자가 아닙니다.)

image

위의 코드 대로 하니,
순차 출력은 되지 않았지만, 적어도 순번은 추출할 수 있었고
출력된 순번대로 재정렬 한뒤에
( 순번 재정렬도 안되던게 시간차를 두고 하니 되네요.; )
이제서야 정상동작 되는 것 같습니다.

근데 개발자도 아니신데 어떻게 저보다 잘 아시는건지 ㅠ
문제를 해결하고도 부끄러워지네요;
어쨋든 끝까지 도움 주신거에 대해서
정말 감사드립니다!