비동기 콜백: 값 반환
비동기 콜백 함수에서 값을 반환하는 것은 비차단 특성으로 인해 어려울 수 있습니다. 문제와 해결 방법은 다음과 같습니다.
제공된 예에서:
function foo(address) { // Google Maps stuff geocoder.geocode({'address': address}, function(results, status) { // Unable to return results[0].geometry.location synchronously }); }
비동기 지오코드 콜백 내에서 반환하려는 값을 동기식으로 검색할 수 없습니다. 그렇게 시도하면 정의되지 않은 값이 발생합니다.
해결 방법: 결과가 포함된 콜백
값을 얻으려면 foo에 콜백 함수를 전달할 수 있습니다. 결과:
function foo(address, callback) { geocoder.geocode({'address': address}, function(results, status) { callback(results[0].geometry.location); }); }
foo에 대한 콜백에서 위치에 액세스할 수 있습니다. 값:
foo("address", function(location) { alert(location); // Result obtained here });
비동기 함수 체인
비동기 호출이 다른 함수 내에 중첩된 경우 반환 값을 얻을 수 있도록 해당 함수도 비동기식이어야 합니다. . 복잡한 시나리오의 경우 Q와 같은 Promise 라이브러리를 사용하여 비동기 작업을 효율적으로 관리하는 것이 좋습니다.
위 내용은 JavaScript의 비동기 콜백 함수에서 값을 반환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!