我已经建立了一个班级"队列"在node.js.中我需要一些队列,所以我创建像" orderQueue":var orderQueue = new queue();
这样的实例。
当处理队列中的最后一个元素时,队列应该发出类似" orderQueue-processed"的信号。 process.emit(instance.name + "-processed");
,应由我的主程序process.on(myobject.name + "-processed", function(){ addmorework ();});
但到目前为止我还没有发现我如何获得实例的名称。 stackoverflow中的答案对窗口对象做了一些事情,但它不是一个bowser,它是node.js。
可能是使用这个名字的想法并不好。建议使用什么而且易于处理也是非常受欢迎的。
答案 0 :(得分:0)
有两种可能的方法不涉及队列名称。
让您的队列对象充当EventEmitter
,因此您的主程序会创建队列的实例,然后在其上注册一个事件监听器:
var orderQueue = new queue();
queue.on("processed", function() {
// Do something when this specific queue has been emptied
});
或者,将对象对象作为事件数据传递:
process.emit("processed",instance);
因此事件监听器被赋予发出事件的队列。
答案 1 :(得分:0)
您可以在创建队列时为其分配名称,然后队列将名称存储为实例变量:
function queue(name) {
this.name = name;
// other constructor code
}
var orderQueue = new queue("orderQueue");.
然后,当队列中的方法处理队列中的最后一个元素时,您只需从队列的实例数据中获取名称:
process.emit(this.name + "-processed");