비동기 JavaScript 함수를 동기식으로 호출
UI를 정지하지 않고 비동기식 호출을 동기식으로 만들려는 요구 사항은 독특하고 어려운 문제를 제시합니다. 안타깝게도 UI를 중단하지 않고 JavaScript 실행을 차단하는 것은 불가능합니다.
잠재적인 해결책 중 하나는 데이터 교환을 위해 전역 변수를 사용하는 것입니다. 비동기 호출의 콜백은 원하는 데이터가 포함된 전역 변수를 수정할 수 있습니다. 한편 폴링 메커니즘은 데이터를 사용할 수 있을 때까지 정기적으로 전역 변수를 확인합니다.
function doSomething() { window.data = null; // Clear global data myAsynchronousCall(param1, callBack); var intvl = setInterval(function() { if (window.data) { clearInterval(intvl); console.log(window.data); } }, 100); } function callBack(d) { window.data = d; }
그러나 제공하신 예를 고려할 때 더 적합한 솔루션은 모범 사례를 따르고 콜백을 전달하는 것입니다. doSomething()에 대한 함수:
function doSomething(func) { function callBack(d) { func(d); } myAsynchronousCall(param1, callBack); } doSomething(function(data) { console.log(data); });
doSomething()에 함수를 전달하면 의심스러운 기술에 의존하지 않고 비동기 호출을 올바르게 활용할 수 있습니다.
위 내용은 UI를 차단하지 않고 비동기 JavaScript 함수를 효과적으로 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!