如何将带有args的多个函数推入数组中

时间:2017-10-05 15:39:25

标签: arrays node.js queue node-modules

大家好,

在我正在研究的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
}

非常感谢,抱歉我的英语很差。

1 个答案:

答案 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();
});