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 Task = function(f, params) {
var now = new Date();
this.f = f; this.f = f;
this.params = params; this.params = params;
this.nextTask = null; this.nextTask = null;
this.when = 0; this.when = now.getTime();
this.setNextTask = function(task) { this.setNextTask = function(task) {
this.nextTask = task; this.nextTask = task;
}; };
this.setWhen = function(when) { this.setWhen = function(when) {
this.when = 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() { var TaskQueue = function() {
@ -55,18 +52,18 @@ var TaskQueue = function() {
try { try {
if (this.queue.length > 0) { if (this.queue.length > 0) {
for (var i = 0; i < this.queue.length; i++) { var delta = this.queue.map(function(task) {
var delta = this.queue[i].when - now.getTime(); return task.when - now.getTime();
if (delta <= 0) { });
task = this.queue.splice(i, 1)[0]; var i = delta.indexOf(Math.min.apply(Math, delta));
break; if (i > -1) {
} task = this.queue.splice(i, 1)[0];
} }
} }
} catch(e) { } catch(e) {
console.error("TaskQueue.get: " + e.message); console.error("TaskQueue.get: " + e.message);
} }
return task; return task;
}; };
this.next = function() { this.next = function() {
@ -154,54 +151,6 @@ exports.stop = function(q) {
q.stop(); 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.VERSIONINFO = "Task Module (task.js) version 0.1";
exports.global = global; exports.global = global;
exports.require = require; exports.require = require;