Javascript Node.js向特定侦听器发出

Javascript Node.js向特定侦听器发出,javascript,node.js,function,events,emit,Javascript,Node.js,Function,Events,Emit,是否可以发送到node.js中的特定侦听器 例如: emitter.js var EventEmitter = require('events').EventEmitter; module.exports = function() { var controller = new EventEmitter(); return { set: function(opts) { setTimeout(function() {

是否可以发送到node.js中的特定侦听器

例如:

emitter.js

var EventEmitter = require('events').EventEmitter;

module.exports = function() {

    var controller = new EventEmitter();

    return {

        set: function(opts) {
            setTimeout(function() {
                controller.emit('ok', opts);
            }, 10);

            return controller;
        },

        get: function(opts) {
            setTimeout(function() {
                controller.emit('ok', opts);
            }, 10);

            return controller;
        }

    };
};
app.js

var express = require('express'),
    app = express(),
    server = require('http').createServer(app);

server.listen(8080);

var testEmitter = require('./emitter')();

testEmitter.set('set').on('ok', function(resp) {
    console.log('set', resp);
});

testEmitter.get('get').on('ok', function(resp) {
    console.log('get', resp);
});

/*result*/

//set set
//get set
//set get
//get get
我的想法是为所有侦听器发射,我只想为特定的侦听器发射

换言之,不是因为

// set set
// get set
// set get
// get get
我想要这个

// set set
// get get
在花了一些时间来理解这些事件是如何工作的之后,我不知道如何才能做到这一点


有什么想法吗?

您使用的是标准侦听器设计模式,它的优点之一是不需要了解侦听器

对于你的问题,你需要以任何方式区别你的听众

您将打破/更改模式,或者维护许多侦听器列表