大家好,
在我正在研究的Node.js模块(自定义队列)中, 我正在使用queue module,我需要推进其数组" jobs"带参数的几个函数(估计时间的int) 当我启动队列时,出现一个错误,表明该作业不是一个函数。 我想我理解为什么,因为功能"过程"当我推它时执行。但是我需要稍后用参数执行这个过程。
我的代码:
module.exports = Queue
var process = require("../test/processjob")
var q = require("queue");
function Queue(options) {
if (!(this instanceof Queue)) {
return new Queue(options);
}
options = options || {}
this.queue = q();
/*
handling other options
*/
}
Queue.prototype.processJob = function() {
for (var i = 0, len = this.tasks.length; i < len; i++) {
this.queue.push(process.process(this.tasks[i].estimated_time));// <== push here
}
this.queue.start(); //<== exception here
}
非常感谢,抱歉我的英语很差。
答案 0 :(得分:0)
要将一个函数推入一个数组,你想要在以后的某个时间点执行,你可以用另一个函数包装该函数,即:
this.queue.push(
function(cb) {
process.process(this.tasks[i].estimated_time)
cb();
}
);// <== push here
或使用ES6
this.queue.push((cb) => {
process.process(this.tasks[i].estimated_time);
cb();
});