실행 중 일시 중지: 5초 대기 구현
JavaScript 코드에서 실행 타이밍 문제가 발생했습니다. 특정 기능. 조건을 평가하기 전에 5초 동안 코드 블록의 실행을 지연하려고 합니다.
제공한 코드:
<code class="js">function stateChange(newState) { setTimeout('', 5000); if(newState == -1) { alert('VIDEO HAS STOPPED'); } }</code>
setTimeout 때문에 원하는 동작을 달성하지 못합니다. 함수는 실제로 if 문의 실행을 지연시키지 않습니다. 대신 콜백 함수가 5000밀리초 후에 실행되도록 예약하지만 if 문은 즉시 실행됩니다.
이 문제를 해결하려면 실행 흐름을 일시 중지하고 실행 흐름을 일시 중지하는 방법을 제공하는 JavaScript의 비동기 프로그래밍 기술을 활용할 수 있습니다. 나중에 다시 시작하세요. 다음은 귀하의 요구 사항을 해결할 수 있는 두 가지 접근 방식입니다.
브라우저 기반 솔루션
<code class="js">const delay = ms => new Promise(res => setTimeout(res, ms)); async function stateChange(newState) { await delay(5000); console.log("Waited 5s before checking condition"); if (newState == -1) { alert('VIDEO HAS STOPPED'); } }</code>
이 솔루션에서는 약속을 생성하는 지연이라는 유틸리티 함수를 정의합니다. 이는 지정된 밀리초 후에 확인됩니다. async 키워드는 stateChange 함수를 비동기식으로 만드는 데 사용되어 Promise가 해결될 때까지 실행을 일시 중지할 수 있습니다.
Node.js 솔루션
<code class="js">const { setTimeout } = require("timers/promises"); async function stateChange(newState) { await setTimeout(5000); console.log("Waited 5s before checking condition"); if (newState == -1) { alert('VIDEO HAS STOPPED'); } }</code>
이 솔루션은 다음을 활용합니다. Promise를 반환하는 Node.js의 내장 setTimeout 함수를 사용하면 Promise가 해결될 때까지 실행을 일시 중지할 수 있습니다. 이전 예시와 마찬가지로 async 키워드를 사용했습니다.
위 내용은 조건을 평가하기 전에 JavaScript 실행을 5초 동안 일시 중지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!