2016-12-09 1 views
3

저는 C++ 및 기본 창과 함께 V8을 사용하고 있습니다. setInterval functon이 정의되지 않았습니다.setInterval 함수를 정의하는 방법

네이티브 setInterval과 같은 것을 만들 수 있지만 순수한 js로 만드는 것은 무엇입니까?

+0

는, 거기에 아무것도 당신이 할 수없는 "순수한"JavaScript로 처리하십시오. 어쩌면 V8 API를 볼 수 있을까요? –

+0

nodej가 타이머를 구현하는 방법을 보여주세요. 아마도 도움이됩니다. –

+0

순수 JavaScript에서 [setTimeout() 및 setInterval() 구현] (http://stackoverflow.com/questions/35824722/implementing-settimeout-and-setinterval-in-pure-javascript)의 복제본이있을 수 있습니다. 또한 [비동기 자바 스크립트는 어떻게 해석되고 Node.js에서 실행됩니까?] (http://stackoverflow.com/questions/36491385/how-is-asynchronous-javascript-interpreted-and-executed-in-node-js) – guest271314

답변

1

setTimeout를 사용할 수있는 가정 (가능성이 아니지만, 당신이 그것을 지정하지 않은) 자체가 이벤트 큐에 작업을 추가 할 수있는 방법을 제공하지 않습니다 자바 스크립트 때문에

function setInterval(fn, t) { 
    let id = {}; 

    function wrapper() { 
    id.timeout = setTimeout(wrapper, t); 
    fn.apply(this, arguments); 
    } 

    id.timeout = setTimeout(wrapper, t); 

    return id; 
} 

function clearInterval(id) { 
    clearTimeout(id.timeout); 
} 
+0

'setTimeout'도 정의되어 있지 않지만 try에 감사드립니다. –

관련 문제