services.Geocoder() 배열 사용 시 문의

services.Geocoder() 배열 사용 시 비동기식이라 callback 함수를 쓸수 없다는 답변을 확인하고
아래와 동일하게 forEach 사용하였으나 오류가 발생하여 문의 드립니다.
forEach 사용 시 설정해야 하는 것이 있나요?

오류 내용 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

객체가 ‘forEach’ 속성이나 메서드를 지원하지 않습니다.

사용소스>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

var addressArray = [ // ];

var xObject = {}; // 각 주소에 대한 x 좌표를 담을 객체
var total = addressArray.length;
var counter = 0;

addressArray.forEach(function (addr) {
geocoder.addressSearch(addr, function(data, status) {
xObject[addr] = data[0].x;

counter++; // 비동기 콜백이 수행되었으면 하나 업 카운트

if (total === counter) { // 모든 비동기 콜백이 수행되었다면
  doSomething(); // 다음 로직으로 넘어갑니다.
}

};);
});

Array 객체에 forEach가 없다고 나오는 경우는
IE8 이하의 브라우저에서 코드를 실행했을 때 입니다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#브라우저_호환성

위를 확인해 보시고
폴리필을 사용하시거나
이를 지원해 주는 라이브러리를 사용하시거나
완료 시점을 확인할 수 있는 다른 로직을 고려해 보시길 바랍니다.