비동기 자바 스크립트의 지연 지연 : 이 기사는 언어의 비동기 특성을 강조하면서 JavaScript 코드의 지연을 구현하기위한 다양한 기술을 탐구합니다. 수면 기능이 내장 된 다른 많은 프로그래밍 언어와 달리 JavaScript는 지연을 도입하기위한 대체 방법이 필요합니다.이 기사는 설명하고 시연하는 것을 목표로합니다. JavaScript의 실행 모델을 이해합니다. JavaScript에서 대기 시간을 구현하는 핵심 측면은 실행 모델을 이해하는 것입니다. JavaScript는 Ruby와 같은 언어와 다르게 비동기 작업을 처리하여 타이밍 및 작동 순서에서 예기치 않은 동작으로 이어질 수 있습니다. 이 기사는 예제를 통해이 차이를 강조하여 JavaScript의 이벤트 중심 모델이 지연된 기능의 실행에 어떤 영향을 미치는지 보여줍니다.
지연 생성을위한 모범 사례 : 이 기사에서는 , Promise 및<code class="language-javascript">function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } console.log('Hello'); sleep(2000).then(() => { console.log('World!'); });</code>
(다음 내용은 원래 텍스트와 유사하지만, 단어 대체 및 문장 구조 조정은 의사 원리 효과를 달성하고 원래 의도를 변경하지 않도록 유지하기 위해 수행되었습니다.
JavaScript에서 Settimeout을 올바르게 사용하는 방법
그러나 불행히도, 상황이 항상 그렇게 간단한 것은 아닙니다. 가 전체 프로그램을 일시 중지 할 것이라고 생각할 수도 있지만 그렇지 않습니다. 비동기 기능으로 코드의 나머지 부분이 완료되기까지 기다리지 않습니다.
예를 들어 다음 코드를 실행한다고 가정하십시오
가 나머지 코드의 실행을 방해하지 않기 때문입니다. setTimeout
<code class="language-ruby">require 'net/http' require 'json' url = 'https://api.github.com/users/jameshibbard' uri = URI(url) response = JSON.parse(Net::HTTP.get(uri)) puts response['public_repos'] puts 'Hello!'</code>
it
는 1 초 지연으로 0 ~ 4를 인쇄하지 않습니다. 대신, 숫자는 1 초 지연 후 동시에 콘솔에 기록됩니다. 왜? 루프가 실행을 일시 중지하지 않기 때문입니다. 다음 반복으로 진행하기 전에 가 완료 될 때까지 기다리지 않습니다.
가 프로그램의 실행을 차단하지는 않지만 JavaScript 통역사는 나머지 코드를 계속 처리하고 타이머가 만료 된 후에 만 실행 콜백 함수로 돌아갑니다. setTimeout
의 지연을
<code class="language-javascript">fetch('https://api.github.com/users/jameshibbard')
.then(res => res.json())
.then(json => console.log(json.public_repos));
console.log('Hello!');</code>
<code class="language-javascript">console.log('Hello');
setTimeout(() => { console.log('World!'); }, 2000);</code>
(이후 섹션에서도 유사한 재 작성이 필요합니다. 원래 의미를 유지하고 키워드 및 문장 구조를 대체하고 원본 텍스트의 직접 복사를 피하기) 공간 제한으로 인해 모든 것을 완료 할 수는 없습니다. 여기에 다시 쓰기. 위의 예를 기반으로 나머지 부분에서 의사 원리 처리를 계속 수행하십시오. 그림의 원래 형식과 위치를 변경하지 않도록하십시오.
위 내용은 지연, 수면, 일시 정지 및 대기중인 JavaScript의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!