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

时间:2015-06-08 09:27:41

标签: javascript node.js signals instance

我已经建立了一个班级"队列"在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。

可能是使用这个名字的想法并不好。建议使用什么而且易于处理也是非常受欢迎的。

2 个答案:

答案 0 :(得分:0)

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

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

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

    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");