키워드검색 결과를 콜백함수로 결과 받아서 만들어둔 배열에 저장하는데
페이지가 2개 이상이면 콜백함수 결과값이 마지막 페이지에 값들만 저장되는건지 마지막페이지 값들만 결과값에 저장되는거 같습니다
그래서 결과값 모두를 만들어둔 배열에 저장할수가 없는데
해결방법이 있을까요?
키워드 검색은 비동기 방식이기 때문에 배열의 순서를 보장하지 않습니다.
이전 유사 게시글 답변에 안내드린 내용 함께 참고해주세요.
https://devtalk.kakao.com/t/topic/115312/2?u=lea.ju
제가 아래와 같은 자바스크립트 함수를 만들었습니다.
이함수는 주소를 입력받아 좌표(x좌표, y좌표)를 가지고 오고 싶습니다.
그래서 넘겨받은 주소의 x좌표, y좌표를 coords 배열에 값을 저장한후에
console.log(‘10 coords=’,coords, ’ coords[0]=’,coords[0], ’ coords[1]=’,coords[1]);
이렇게 화면에 return 하기전에 브라우저 화면에 출력하면 아무것도 나오지 않습니다.
coords는 배열인데 console.log하면 나오게 하려면 어떻게 해야할까요?
// 주소-좌표 변환 객체를 생성합니다
function displayAddrCoords(addr) {
var coords = [];
var geocoder = new kakao.maps.services.Geocoder();
// 주소로 좌표를 검색합니다
geocoder.addressSearch(addr, function(result, status) {
coords[0] = result[0].x;
coords[1] = result[0].y;
console.log(' coords=',coords, ' coords[0]=',coords[0], ' coords[1]=',coords[1]);
});
console.log('10 coords=',coords, ' coords[0]=',coords[0], ' coords[1]=',coords[1]);
return coords;
}
addressSearch는 비동기이기 때문에
콜백 함수 밖에서 coords을 출력하면 콜백 함수가 실행되기 전으로 빈 배열이 출력됩니다.
아래 답변 링크 참고해서 주소 검색이 끝난 후 coords를 출력해주세요.
https://devtalk.kakao.com/t/topic/115312/2?u=lea.ju