테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 질문드립니다.. 채택완료

김준수사랑 3년 전 조회 1,672

아래소스에서 document.write 의 주석을 풀면 주소가 표기되는데요

return 받아서 하단에서 불러오면 undefined 뜹니다..

어느문법이 잘못되었는지 좀 봐주실분.. 감사드리겠습니다..

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
3년 전

몇가지 방법으로 테스트 해보니 일반적인 방법으로 값이 잘 전달이 안되는 것 같고 아래처럼 하세요

var add function getAddr(lat,lng){     let geocoder = new kakao.maps.services.Geocoder();     let coord = new kakao.maps.LatLng(lat, lng);     let callback = function(result, status) {         if (status === kakao.maps.services.Status.OK) {             console.log(result); //     alert( result[0].road_address.address_name);       add= result[0].address.address_name;   //document.write(add);         }     }

   geocoder.coord2Address(coord.getLng(), coord.getLat(), callback); }

 getAddr(lat,lng); setTimeout(function(){document.write(add); alert(add) }, 500);//<---8000(8초)까지는 필요 없습니다. 8초나 걸려야 한다면 쓸 수 없는 상태입니다

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김준수사랑
3년 전
이렇게 하니 되네요 정말정말 감사합니다!!!!
2일을 고생했는데 정말 감사합니다!!!

댓글을 작성하려면 로그인이 필요합니다.

3년 전

안되는가요?

함수내에서는 나오는데 함수 밖에서 값이 안나온다면 함수에서 값을 추출하기도 전에 함수밖의 코드가 실행 되어서 입니다

방법은 두가지

1. return result[0].address.address_name; <--이 자리에 값을 출력하는 코드를 넣는다

document.write(result[0].address.address_name);

 

2. 주소를 추출하는 시간 동안의 딜레이를 약간 주어서 값을 출력한다

var aaa = getAddr(lat,lng); setTimeout(function(){ document.write(aaa); }, 1000);

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김준수사랑
3년 전
setTimeout(function(){ document.write(aaa); }, 8000);
이렇게 해도 안되네요;;;

document.write(result[0].address.address_name);
이렇게는 되긴했는데... 위의 방법이 깔끔한것같아서 계쏙 이리저리해보고 있는데 안되네요..ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

n
3년 전

추가 피해자 방지 https://sir.kr/conflictconsultation/245" rel="nofollow noreferrer noopener" target="_blank">https://sir.kr/conflictconsultation/245

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

유찬아빠

var aaa = getAddr(lat,lng);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김준수사랑
3년 전
let lat = 33.450701;
let lng = 126.570667;

function getAddr(lat,lng){
let geocoder = new kakao.maps.services.Geocoder();

let coord = new kakao.maps.LatLng(lat, lng);
let callback = function(result, status) {
if (status === kakao.maps.services.Status.OK) {
console.log(result);
return result[0].address.address_name;
//document.write(result[0].address.address_name);
}
};

geocoder.coord2Address(coord.getLng(), coord.getLat(), callback);

}

var aaa = getAddr(lat,lng);
document.write(aaa);



이렇게 해도 안되는데용..ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인