繁体   English   中英

如何在node.js中获得实例名称

[英]How to get the NAME OF an INSTANCE in node.js

我已经在node.js中建立了一个类“ Queue”。 我需要一些队列,因此需要创建类似于“ orderQueue”的实例: var orderQueue = new queue();

处理队列中的最后一个元素时,该队列应发出类似“ orderQueue-processed” process.emit(instance.name + "-processed"); ,应由我的主程序process.on(myobject.name + "-processed", function(){ addmorework ();});

但是到目前为止,我还没有找到如何获取实例名称的方法 stackoverflow中的答案对window对象有作用,但它不是Bowser,而是node.js。

可能是使用名称的想法不好。 也将非常欢迎提出建议,使用什么代替并且易于处理。

有两种不涉及队列名称的可能方法。

  1. 让您的队列对象充当EventEmitter ,因此您的主程序创建队列的实例,然后在其上注册一个事件侦听器:

     var orderQueue = new queue(); queue.on("processed", function() { // Do something when this specific queue has been emptied }); 
  2. 或者,将对象对象作为事件数据传递:

     process.emit("processed",instance); 

    因此,事件监听器被赋予了发出事件的队列。

您可以在创建队列时为其分配名称,然后该队列会将其存储为实例变量:

function queue(name) {
    this.name = name;
    // other constructor code
}

var orderQueue = new queue("orderQueue");.

然后,当队列中的方法处理了队列中的最后一个元素时,您只需从队列的实例数据中获取名称:

process.emit(this.name + "-processed");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM