mirror of
https://github.com/gnh1201/welsonjs.git
synced 2024-11-26 15:31:42 +00:00
Update fakeworker.js
This commit is contained in:
parent
37b8404f0b
commit
7caeed23ed
|
@ -81,34 +81,48 @@ function FakeWorker() {
|
|||
return this.__lastIntervalID__;
|
||||
};
|
||||
|
||||
this.getIntervals = function() {
|
||||
|
||||
this.getIntervals = function(cur) {
|
||||
var intervals = [];
|
||||
var cur = Date.now();
|
||||
|
||||
for (var i = 0; i < this.__intervals__.length; i++) {
|
||||
if (!this.__intervals__[i].cleared && (this.__intervals__[i].timestamp + this.__intervals__[i].delay) >= cur) {
|
||||
intervals.push(this.__intervals__[i]);
|
||||
this.__intervals__[i].timestamp = cur;
|
||||
if (typeof this.__intervals__[i].callback === "function") {
|
||||
this.__intervals__[i].delay = this.__intervals__[i].callback();
|
||||
}
|
||||
var work = this.__intervals__[i];
|
||||
|
||||
if (!work.cleared && (work.timestamp + work.delay) <= cur) {
|
||||
//console.debug("timestamp:", work.timestamp);
|
||||
//console.debug("delay:", work.delay);
|
||||
//console.debug("timestamp+delay:", work.timestamp + work.delay);
|
||||
//console.debug("cur:", cur);
|
||||
//console.debug("cur-(timestamp+delay):", cur - (work.timestamp + work.delay));
|
||||
intervals.push([i, work]);
|
||||
}
|
||||
cur = Date.now();
|
||||
}
|
||||
|
||||
return intervals;
|
||||
};
|
||||
|
||||
this.getTimeouts = function() {
|
||||
this.update = function(i, timestamp) {
|
||||
var work = this.__intervals__[i];
|
||||
|
||||
work.timestamp = timestamp;
|
||||
if (typeof work.callback === "function") {
|
||||
work.delay = work.callback();
|
||||
}
|
||||
|
||||
this.__intervals__[i] = work;
|
||||
};
|
||||
|
||||
this.getTimeouts = function(cur) {
|
||||
var timeouts = [];
|
||||
var cur = Date.now();
|
||||
|
||||
for (var i = 0; i < this.__timeouts__.length; i++) {
|
||||
if (!this.__timeouts__[i].cleared && (this.__timeouts__[i].timestamp + this.__timeouts__[i].delay) >= cur) {
|
||||
timeouts.push(this.__timeouts__[i]);
|
||||
this.__timeouts__[i].cleared = true;
|
||||
var work = this.__intervals__[i];
|
||||
|
||||
if (!work.cleared && (work.timestamp + work.delay) <= cur) {
|
||||
timeouts.push([i, work]);
|
||||
work.cleared = true;
|
||||
this.__timeouts__[i] = work;
|
||||
}
|
||||
cur = Date.now();
|
||||
}
|
||||
|
||||
return timeouts;
|
||||
|
@ -128,15 +142,23 @@ exports.repeat = function(target, worker, onError) {
|
|||
var end = cur + ms;
|
||||
|
||||
while (ms === true ? true : (cur < end)) {
|
||||
var intervals = worker.getIntervals();
|
||||
var intervals = worker.getIntervals(cur);
|
||||
for (var i = 0; i < intervals.length; i++) {
|
||||
var k = intervals[i][0];
|
||||
var work = intervals[i][1];
|
||||
|
||||
try {
|
||||
if (typeof intervals[i].code === "function") intervals[i].code(i);
|
||||
if (typeof work.code === "function") {
|
||||
work.code(i);
|
||||
worker.update(k, Date.now());
|
||||
}
|
||||
} catch (e) {
|
||||
if (typeof onError === "function") onError(e, i);
|
||||
if (typeof onError === "function") {
|
||||
onError(e, i);
|
||||
}
|
||||
}
|
||||
cur = Date.now();
|
||||
};
|
||||
cur = Date.now();
|
||||
}
|
||||
|
||||
end = cur;
|
||||
|
@ -145,7 +167,7 @@ exports.repeat = function(target, worker, onError) {
|
|||
return end;
|
||||
};
|
||||
|
||||
exports.VERSIONINFO = "FakeWorker module (fakeworker.js) version 0.0.4";
|
||||
exports.VERSIONINFO = "FakeWorker module (fakeworker.js) version 0.0.6";
|
||||
exports.AUTHOR = "abuse@catswords.net";
|
||||
exports.global = global;
|
||||
exports.require = global.require;
|
||||
|
|
Loading…
Reference in New Issue
Block a user