Update task.js

This commit is contained in:
Namhyeon Go 2021-07-16 11:09:14 +09:00 committed by GitHub
parent 73ab88acb9
commit 3cc3f8b77b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,22 +17,19 @@
*/
var Task = function(f, params) {
var now = new Date();
this.f = f;
this.params = params;
this.nextTask = null;
this.when = 0;
this.when = now.getTime();
this.setNextTask = function(task) {
this.nextTask = task;
};
this.setWhen = function(when) {
this.when = when;
};
this.clone = function() {
var task = new Task(this.f, this.params);
task.setNextTask(this.nextTask);
task.setWhen(this.when);
return task;
};
};
var TaskQueue = function() {
@ -55,18 +52,18 @@ var TaskQueue = function() {
try {
if (this.queue.length > 0) {
for (var i = 0; i < this.queue.length; i++) {
var delta = this.queue[i].when - now.getTime();
if (delta <= 0) {
task = this.queue.splice(i, 1)[0];
break;
}
var delta = this.queue.map(function(task) {
return task.when - now.getTime();
});
var i = delta.indexOf(Math.min.apply(Math, delta));
if (i > -1) {
task = this.queue.splice(i, 1)[0];
}
}
} catch(e) {
console.error("TaskQueue.get: " + e.message);
}
return task;
};
this.next = function() {
@ -154,54 +151,6 @@ exports.stop = function(q) {
q.stop();
};
/*
exports.setTimeout = function() {
var f = null;
var delay = 0;
var params = [];
var args = arguments;
if (args.length > 2) {
f = arguments[0];
delay = args[1];
params = args.slice(2);
} else if (args.length == 2) {
f = args[0];
delay = args[1];
}
if (f != null) {
var when = new Date().getTime() + delay;
// ... todo ...
}
};
exports.setInterval = function() {
var f = null;
var delay = 0;
var params = [];
var args = arguments;
if (args.length > 2) {
f = args[0];
delay = args[1];
params = args.slice(2);
} else if (args.length == 2) {
f = args[0];
delay = args[1];
}
if (f != null) {
var when = new Date().getTime() + delay;
// ... todo ...
}
};
exports.Promise = function() {
// ... todo ...
};
*/
exports.VERSIONINFO = "Task Module (task.js) version 0.1";
exports.global = global;
exports.require = require;