Я использую V8 в сочетании с C++ и родным окном setInterval
functon не определен.Как определить функцию setInterval
Что было бы алгоритмом для создания чего-то вроде родного setInterval
, но в чистом js?
Я использую V8 в сочетании с C++ и родным окном setInterval
functon не определен.Как определить функцию setInterval
Что было бы алгоритмом для создания чего-то вроде родного setInterval
, но в чистом js?
Предполагая 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);
}
'setTimeout' также не определен, но спасибо за попытку –
Поскольку JavaScript сама не предоставляет способ для добавления задачи в очередь событий, нет ничего вы можете делать с «чистым» JavaScript. Может быть, посмотрите на API V8? –
Попробуйте посмотреть, как nodejs реализует таймеры, может быть, поможет вам. –
Возможный дубликат [Реализация 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