> 웹 프론트엔드 > JS 튜토리얼 > 비동기식 JavaScript 함수를 강제로 동기식으로 실행할 수 있나요?

비동기식 JavaScript 함수를 강제로 동기식으로 실행할 수 있나요?

DDD
풀어 주다: 2024-12-03 03:24:10
원래의
684명이 탐색했습니다.

Can Asynchronous JavaScript Functions Be Forced to Execute Synchronously?

비동기 Javascript 함수를 동기식으로 호출할 수 있나요?

Javascript에서는 비동기 프로그래밍이 일반적이지만 특정 시나리오에서는 기존 동기에 대한 동기 함수 호출이 필요할 수 있습니다. 코드베이스. 이 접근 방식의 차선책 특성을 인정함에도 불구하고 시간 제약으로 인해 비동기식 호출을 더 큰 동기식 코드베이스로 개조해야 할 수도 있습니다.

콜백 함수 차단

과제 비동기 함수의 콜백이 수신될 때까지 호출 함수의 실행을 차단하는 것입니다. 주요 고려 사항은 다음과 같습니다.

  • UI 차단 불가능: Javascript 런타임을 차단하면 UI 경험이 필연적으로 정지됩니다.
  • 전역 변수 폴링: 다른 접근 방식은 호출 함수 내의 콜백에 의해 설정된 전역 변수를 폴링하는 것입니다. 이는 간격 타이머를 사용하여 전역 변수가 채워질 때까지 반복적으로 확인하여 달성할 수 있습니다.

구현 예:

function doSomething() {
  var data;

  function callBack(d) {
    window.data = d;
  }

  myAsynchronousCall(param1, callBack);

  // Start polling
  var intvl = setInterval(function() {
    if (window.data) {
      clearInterval(intvl);
      console.log(data);
    }
  }, 100);
}
로그인 후 복사

리팩터링 비동기식 규정 준수:

그러나 이상적인 접근 방식은 주목할 가치가 있습니다. 호출 함수를 수정하고 콜백을 전달하여 비동기 작업을 처리해야 합니다. 이는 동기 코드베이스 기능을 희생하지 않고 비동기 무결성을 유지합니다.

function doSomething(func) {
  function callBack(d) {
    func(d);
  }

  myAsynchronousCall(param1, callBack);
}

doSomething(function(data) {
  console.log(data);
});
로그인 후 복사

위 내용은 비동기식 JavaScript 함수를 강제로 동기식으로 실행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿