카카오 rest api geocoding에 대해 문의드립니다

url이 실행되면 10개의 좌표값을 가져와 for문을 돌려 geocoding(lat,lng);을 호출합니다
그런데 함수를 호출할때 for문 1개 요청이 되면 1개의 응답이 와야하는데 한번에 10개를 요청하고 결과값을 받는데 하나씩 하는방법은 없을까요?(하나의 요청, 하나의 응답)

geocoding 소스 입니다.

function kakao_geocoding(lat,lng,time_stamp){ 
	countNum = countNum +1;
	console.log("@@@@@@@",countNum,"lat",lat,"lng",lng);  

		
			var options = { method: 'GET',
					 url: 'http://dapi.kakao.com/v2/local/geo/coord2regioncode.json',
					  qs: 
					   { x: ''+lng+'',
					     y: ''+lat+'' },
					  headers: 
					   {
					     Host: 'dapi.kakao.com',
					     Authorization: 'KakaoAK [키값]',
					     'Content-Type': 'application/json;' } };
			
 
			 request(options, function (error, response, data) {
				 
				  var jsonContent = JSON.parse(data);
				  dong_name = jsonContent.documents[1].region_3depth_name;
				  console.log("dong_name",dong_name,"time_stamp",time_stamp);
});
			  
}

키값은 지웟습니다.
답변 부탁드립니다. 감사합니다.

다수의 좌표를 1회의 요청으로 처리하는 방법은 지원하지 않습니다.
감사합니다.

제가 말하고 싶은게 그거예요
다수의 좌표를 1회의 요청이아니라 1개의 좌표를 1개의 요청으로 할려고하는거입니다…ㅠ

아 넵,
아래 글을 참고해보시면 도움이 될까요?

질문주신 구조로도 하나의 요청당 하나의 응답을 받게 되어 있습니다.

다만 비동기 요청들은 반복문을 돌면서 거의 동시에 실행되며
그 응답들도 거의 동시에 들어오기 때문에
이를 순차 처리하는데 몇 가지 장치가 필요합니다.

비동기 요청/응답을 동기화하여 매 요청마다 순차 처리가 가능한 구조를 원하시는 것 같은데,

이건 하나의 요청에 대한 응답 콜백에서 다음 요청을 실행하는 구조를 만드셔야 합니다.

질문글의 경우에서 보면 request() 함수 두 번째로 넣어주는 콜백 안에서 다음번 실행할 kakao_geocoding() 의 매개변수를 구성해 주고 실행시키는 것으로 구조가 완성됩니다.

기능은 위에 말씀드린 것에서 끝나긴 하지만
좀 더 안전하고 보기 편한 구조를 만들고 싶다고 하시면
async 혹은 비동기 제어 관련 라이브러리를 사용하시거나
Promise 및 async/await 를 쓰시면 도움을 받을 수 있을겁니다.

1개의 좋아요