반응형
2 초 동안 자바 스크립트 코드 실행을 일시 중지하는 방법
이 질문에 이미 답변이 있습니다.
- 자바 스크립트에서 잠자기-작업 간 지연 10 답변
2 초 동안 실행을 중지하고 싶습니다. 이렇지 만 이제 코드 블록을 따릅니다.
<html>
<head>
<title> HW 10.12 </title>
<script type="text/javascript">
for (var i = 1; i <= 5; i++) {
document.write(i);
sleep(2); //for the first time loop is excute and sleep for 2 seconds
};
</script>
</head>
<body></body>
</html>
첫 번째 시간 루프는 실행되고 2 초 동안 수면됩니다. 2 초 동안 실행을 중지하고 싶습니까?
자바 스크립트는 단일 스레드이므로 수면 기능은 스레드를 차단하므로 본질적으로 수면 기능이 없어야합니다. setTimeout
스레드를 차단하지 않고 나중에 실행할 이벤트를 큐에 게시하여이 문제를 해결하는 방법입니다. 그러나 진정한 수면 기능을 원한다면 다음과 같이 작성할 수 있습니다.
function sleep(miliseconds) {
var currentTime = new Date().getTime();
while (currentTime + miliseconds >= new Date().getTime()) {
}
}
참고 : 위 코드는 권장 되지 않습니다.
실행을 일시 중지하는 (안전한) 방법은 없습니다. 그러나 setTimeout을 사용하여 다음과 같이 할 수 있습니다 .
function writeNext(i)
{
document.write(i);
if(i == 5)
return;
setTimeout(function()
{
writeNext(i + 1);
}, 2000);
}
writeNext(1);
setTimeout
이 작업을 수행 하는 데 사용할 수 있습니다.
function myFunction() {
// your code to run after the timeout
}
// stop for sometime if needed
setTimeout(myFunction, 5000);
이 링크 는 도움이 될 수 있습니다.
함수 중간에 잠을 원할 때마다 setTimeout ()을 사용하도록 리팩토링했습니다.
절차 적 언어로하는 것처럼 코드 실행을 중지 할 수있는 방법은 없습니다. 대신 setTimeout 및 몇 가지 속임수를 사용하여 매개 변수화 된 시간 제한을 얻을 수 있습니다.
for (var i = 1; i <= 5; i++) {
var tick = function(i) {
return function() {
console.log(i);
}
};
setTimeout(tick(i), 500 * i);
}
데모 : http://jsfiddle.net/hW7Ch/
참고 URL : https://stackoverflow.com/questions/16623852/how-to-pause-javascript-code-execution-for-2-seconds
반응형
'Program Tip' 카테고리의 다른 글
UIPanGestureRecognizer를 사용하여 개체를 이동하는 방법은 무엇입니까? (0) | 2020.10.13 |
---|---|
Uri가있는 파일의 MIME 유형을 어떻게 얻을 수 있습니까? (0) | 2020.10.13 |
SDDL 생성 실패, 오류 : 1332 (0) | 2020.10.13 |
React Native에서 부모 너비의 80 %보기 (0) | 2020.10.13 |
Windows 10의 Docker에서 현재 디렉터리를 볼륨으로 탑재 (0) | 2020.10.13 |