2016-12-09 2 views
3

Я использую V8 в сочетании с C++ и родным окном setInterval functon не определен.Как определить функцию setInterval

Что было бы алгоритмом для создания чего-то вроде родного setInterval, но в чистом js?

+0

Поскольку JavaScript сама не предоставляет способ для добавления задачи в очередь событий, нет ничего вы можете делать с «чистым» JavaScript. Может быть, посмотрите на API V8? –

+0

Попробуйте посмотреть, как nodejs реализует таймеры, может быть, поможет вам. –

+0

Возможный дубликат [Реализация setTimeout() и setInterval() в чистом JavaScript] (http://stackoverflow.com/questions/35824722/implementing-settimeout-and-setinterval-in-pure-javascript). См. Также [Как асинхронный 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' также не определен, но спасибо за попытку –

Смежные вопросы