JavaScript의 비동기 특성으로 인해 즉시 반환 값을 얻는 데 어려움을 겪는 경우가 많습니다. 이 컨텍스트에서는 비동기 호출을 통해 GUID 값을 검색하는 jQuery 함수를 생각해 보세요. 함수 내의 경고() 함수는 GUID를 성공적으로 표시하지만 이를 변수에 할당하고 해당 값을 반환하는 것은 많은 개발자에게 어려운 것으로 입증되었습니다.
이 문제에 대한 일반적인 접근 방식 중 하나는 콜백 함수를 GUID로 도입하는 것입니다. 매개변수. 이 메서드를 사용하면 함수가 비동기 호출 완료 시 지연된 Promise를 반환하여 콜백을 연결할 수 있습니다.
function trackPage() { var elqTracker = new jQuery.elq(459), dfd = $.Deferred(); elqTracker.pageTrack({ success: function() { elqTracker.getGUID(function(guid) { dfd.resolve(guid); }); } }); return dfd.promise(); } // Example usage: trackPage().done(function(guid) { alert("Got GUID: " + guid); });
이 예에서 trackPage() 함수는 이제 Promise를 반환합니다. 비동기 호출이 완료되면 GUID 값을 수신하기 위해 done() 메서드를 사용하여 콜백 함수를 연결할 수 있습니다. 여러 콜백을 함께 연결할 수 있습니다.
var pageHit = trackPage().done(function(guid) { alert("Page Hit GUID: " + guid); }); $("button").click(function() { pageHit.done(function(guid) { alert("Clicked on Page GUID: " + guid); }); });
jQuery에서 제공하는 $.Deferred 개체를 사용하면 개발자는 Promise를 반환하는 자체 비동기 논리를 생성하여 애플리케이션 전체에서 일관된 인터페이스를 보장할 수 있습니다. AJAX와 같은 다른 jQuery 모듈도 Promise를 반환하므로 JavaScript에서 비동기 작업을 더 쉽게 처리할 수 있습니다.
위 내용은 jQuery를 사용하여 JavaScript 비동기 함수에서 반환 값을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!