실행하기 전에 다음 줄 때까지 5 초

이 함수는 다음과 같이 일하는 나는 싫어하겠어 싶다. js 초보 못잊어버려요 그림 이유를 밝혔다.

이를 때까지 5 초 전 검사 '는' 뉴스테이트 데릭쉐퍼드와 나열할지 '-'.

현재 이 싫어하겠어 잠깐, 그냥 바로 확인.

function stateChange(newState) {
  setTimeout('', 5000);

  if(newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
}
질문에 대한 의견 (1)

할 수 있는 코드를 넣어 'setTimeout' 콜백 함수를 제공합니다.

function stateChange(newState) {
    setTimeout(function () {
        if (newState == -1) {
            alert('VIDEO HAS STOPPED');
        }
    }, 5000);
}

기타 코드 즉시 시행할 예정이다.

해설 (3)

, T be 이렇게 하면 정말 shouldn& # 39 는 올바른 사용을 위한 최적의 도구 시간초과를 OP& # 39 의 문제 및 기타 특별한 어디 그냥 뭔가 실행하십시오 일정 시간이 지나면. 조지프 실버 더불어 그의 답변은 있다는 것을 입증했다. 그러나 일부 비프로덕션 경우 일정 기간 동안 정말 매핑하려는 멈춤으로 스레드할 주, 이렇게 하면 do it.

function wait(ms){
   var start = new Date().getTime();
   var end = start;
   while(end < start + ms) {
     end = new Date().getTime();
  }
}

엑서큐션 함께 형식으로:

console.log('before');
wait(7000);  //7 seconds in milliseconds
console.log('after');

39, ve i& 구축하는 사례가 있었기 때문에 여기에 도착했다 간단한 테스트를 함께 전세계적으로 운영을 비동기적입니다 시퀀싱 (즉 비싸다구요 DOM 조작) 그리고 이건 내 시뮬레이트됨 오랜기간 차단 운영체 막는 작업입니다. 이 때문에 잘 하는 사람이 좋은 일을 하는 줄 알았는데 도착할 수 있도록 함께 여기에 게시물로의 비슷한 览侩 荤례. 그렇다고 it& # 39 의 생성하기에 날짜 () 는 객체 받을시간은 낼수있지않나 루프 낳을 수 있는 경우 완벽하게 제압하십시오 GC 는 매우 짧습니다. 하지만 난 can& # 39 이것은 단지 건설을 위한 충분한 테스트를 위한 모든 적절한 강조하십시오, t, 실제 기능을 조지프 Silber& # 39 의 answer. 확인해야 합니다.

해설 (10)

39 의 솔루션을 here& 새 비동기 / 기다리는 구문을 사용하여.

[브라우저 지원] [2] 로 확인하십시오 도입된 6 이 새로운 기능을 소개한다.

  • 도우미 function:*
const delay = ms => new Promise(res => setTimeout(res, ms));
  • Usage:*
const yourFunction = async () => {
  await delay(5000);
  console.log("Waited 5s");

  await delay(5000);
  console.log("Waited an additional 5s");
};

이 방법의 가장 유리한 코드에 동기식 코드를 만드는 게 모양과 같이 동작합니다.

[2]: # Browser_compatibility https://developer.mozilla.org/en-us/docs/web/javascript/reference/operators/await

해설 (3)

단순히 javascript 에 5 초 일시정지하려면 시도하시겠습니까 합니다. # 39 이 doesn&, t 작동합니까 이쪽요. 지금부터 5 초 분량의 코드를 실행할 수 있는 기능을 할 수 있지만, 스케줄하려면 동일팔레트에 코드를 실행할 수 있는 기능은 나중에 붙여넣습니다 기능과 코드를 계속 실행하십시오 미삭 후 즉시.

예를 들면 다음과 같습니다.

function stateChange(newState) {
    setTimeout(function(){
        if(newState == -1){alert('VIDEO HAS STOPPED');}
    }, 5000);
}

그러나 코드가 있을 경우 다음과 같습니다.

stateChange(-1);
console.log("Hello");

() '이' 콘솔드로그 기술서임을 즉시 실행됩니다. 화재 () '에서' 스테이시엔제 시간초과했습니다 때까지 기다린 후에야 않을 것이라고 주장했습니다. 그냥 자바스크립트 실행 미리 정해진 시간에 대한 일시정지할 수 없습니다.

대신 임의의 코드를 실행할 수 있는 '지연' 콜백하는 합니다 setTimeout () 함수 (또는 해당 함수 호출).

재발했지 시도할 경우 &quot pause"; # 39 에서 루프을 관심용 you& 본질적으로 &quot hang";; d javascript 인터프리터 일정 기간 동안. 자바스크립트 실행 코드에서 때문에 단 하나의 스레드할 you& 때 아무것도 루프을 실행할 수 있는 # 39, re (다른 어떤 이벤트 핸들러도 불렀으매 얻을 수 있다). 따라서 변경할 수 없기 때문에 결코 다른 코드를 실행할 수 있는 몇 가지 변수 기다리는 루프을 작동합니까 변화시킬 수 있는 편이다.

해설 (3)

다음과 같은 함수를 사용하여 지연입니다

var delay = ( function() {
    var timer = 0;
    return function(callback, ms) {
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
    };
})();

사용법:

delay(function(){
    // do stuff
}, 5000 ); // end delay

크레딧 gnu. orghttp://www. 사용자 CMS http://schmidt. devlib. https://stackoverflow.com/q/1909441/1066234

해설 (0)

39 you& 경우, re in ui_policytable_java_spe_policy 비동기 함수 선 하나로 간단히 할 수 있습니다.

console.log(1);
await new Promise(resolve => setTimeout(resolve, 3000)); // 3 sec
console.log(2);

, 디이브이 노데지스 대상이 될 경우 이 보다 효율적인 to use this (it& # 39 의 프로미시프리드 setTimeout 미리 정의된 함수):

await setTimeout[Object.getOwnPropertySymbols(setTimeout)[0]](3000) // 3 sec
해설 (0)

이 같은 기능을 하도록 만들 수 있는 최선의 방법은 기다리는 대기 밀리 초, 이 함수는 밀리초입니다 나타난 것이다.

<! - begin 스니핏: js 숨기십시오: &gt 거짓값 -;

function waitSeconds(iMilliSeconds) {
    var counter= 0
        , start = new Date().getTime()
        , end = 0;
    while (counter < iMilliSeconds) {
        end = new Date().getTime();
        counter = end - start;
    }
}

끝 - &lt 스니핏 >;!

해설 (0)

이거 드세요.


//the code will execute in 1 3 5 7 9 seconds later
function exec() {
    for(var i=0;i
해설 (1)

답변 에 따라 조지프 Silber& # 39, I would do it like that, 좀 더 일반.

사용하는 함수가 했습니다 (let& # 39 에 따라 생성하시겠습니까 질문):

function videoStopped(newState){
   if (newState == -1) {
       alert('VIDEO HAS STOPPED');
   }
}

및 외상때문에 대기 기능:

function wait(milliseconds, foo, arg){
    setTimeout(function () {
        foo(arg); // will be executed after the specified time
    }, milliseconds);
}

마지막에 했습니다.

wait(5000, videoStopped, newState);

39 의 that& 솔루션, 차라리 인수만 사용하지 않고 있는 진정하라구요 함수 (가질 수 있는 전용 'foo (),' 대신 'foo (arg),') 이지만 that& # 39 의 예를 들어.

해설 (0)

내가 사용하는 PC 게임, IE 에서 모서리까지 迈向 실행하십시오. 또한 IE 모서리까지 셀프클로스 7 초 후에.

파이어폭스, 구글 크롬 게임 이렇게 시작하는 데 사용할 수 없습니다.

해설 (0)

Js 함수은 새로 만들기

function sleep(delay) {
        var start = new Date().getTime();
        while (new Date().getTime() < start + delay);
      }

다음 함수 호출 할 때 지연입니다 엑서큐션. Int 의 값을 사용하여 밀리초입니다 일정.

####Some code
 sleep(1000);
####Next line
해설 (1)

앙굴라이스 사용하여.

$timeout(function(){
if(yourvariable===-1){
doSomeThingAfter5Seconds();
}
},5000)
해설 (0)