[javascript] 비동기 콜백 함수에서 값을 반환하는 방법?



Answers

콜백에서 값을 반환하는 것은 의미가 없습니다. 대신 콜백 에서 수행하려는 "foo ()"작업을 수행하십시오.

비동기 콜백은 브라우저 또는 이벤트 발생시 Google 지오 코딩 라이브러리와 같은 일부 프레임 워크에 의해 호출됩니다. 반환 값을 가져올 곳이 없습니다. 콜백 함수 즉, 값을 반환 할 수 있지만 함수를 호출하는 코드는 반환 값에주의를 기울이지 않습니다.

Question

이 질문에는 이미 답변이 있습니다.

이 질문은 여러 번 묻습니다. 하지만 여전히 나는 물건을 얻을 수 없다.

콜백에서 가치를 얻고 싶습니다. 아래 스크립트를 참조하여 설명을 확인하십시오.

function foo(address){

      // google map stuff
      geocoder.geocode( { 'address': address}, function(results, status) {
          results[0].geometry.location; // I want to return this value
      })

    }
    foo(); //result should be results[0].geometry.location; value

그 값을 반환하려고하면 "정의되지 않은"상태가됩니다. 나는 몇 가지 아이디어를 따랐으나 여전히 실패합니다.

사람들은:

function foo(address){
    var returnvalue;    
    geocoder.geocode( { 'address': address}, function(results, status) {
        returnvalue = results[0].geometry.location; 
    })
    return returnvalue; 
}
foo(); //still undefined



Links