Tag: eventemitter

在node.js中使用emit函数

我不明白为什么我不能让我的服务器运行发射function。 这是我的代码: myServer.prototype = new events.EventEmitter; function myServer(map, port, server) { … this.start = function () { console.log("here"); this.server.listen(port, function () { console.log(counterLock); console.log("here-2"); this.emit('start'); this.isStarted = true; }); } listener HERE… } 听众是: this.on('start',function(){ console.log("wtf"); }); 所有的控制台types是这样的: here here-2 任何想法,为什么它不会打印'wtf' ?

Nodejs EventEmitter – 定义侦听器函数的作用域

我想有这样的工作: var Events=require('events'), test=new Events.EventEmitter, scope={ prop:true }; test.on('event',function() { console.log(this.prop===true);//would log true }); test.emit.call(scope,'event'); 但不幸的是,听众甚至没有被叫到。 有没有办法做到这一点与EventEmitter? 我可以Function.bind给侦听器,但是,我真的希望EventEmitter有一些特殊的(或明显的)方法来做到这一点… 谢谢您的帮助!

eventEmitter侦听器和具有不同参数的发射器

我们可以有一个发射器的多个监听器,每个工作在不同数量的参数上? 让事件发射器是这样的: evetE.emit('pre', global, file, self); corresponding event listeners: //Listener 1 m.eventE.on('pre', function() { //TODO }) //Listener 2 eventE.on('pre', function(context, file, m){ console.log(context.ans); }); //Listener 3 eventE.on('pre', function(context){ console.log(context.ans); }); //Listener 4 this.eventE.on('pre',function (context) {}) 如果以上是真的,那么哪个参数传给哪个监听器呢?

如何在NodeJS中扩展事件的对象 – 文字对象?

我想让我的Node.js对象强制转换事件 。 现在,如果我创build“静态”对象并将它们实例化,这不是问题,但是当我的对象没有静态的祖父时,如何做到这一点,就像使用对象字面符号创build对象一样 ? 我习惯于编写ExtJS语法,所以我更喜欢对象字面量的一切。 // var EventEmitter = require('events').EventEmitter; // How where when? myObject = { myFunction: function() { console.log('foo'); }, urFunction: function() { console.log('bar'); } }; 这是一个对象。 它没有构造函数,因为不需要更多的实例。 现在我该如何让myObject发出事件? 我已经尝试过,并尝试修改代码,但是如果不使用像这样的构造函数重写我的对象, var EventEmitter = require('events').EventEmitter; var util = require('util'); function myClass() { EventEmitter.call(this); myFunction: function() { this.emit('foo'); }, urFunction: function() { this.emit('bar'); } }; […]

EventEmitter vs Facebook的调度员

我正在使用Flux架构。 我在网上读过,为了定义Store,我必须这样做: var AppDispatcher = require('../dispatcher/dispatcher'), //facebook's dispatcher EventEmitter = require('events').EventEmitter, assign = require('object-assign'); var MyStore = assign({}, EventEmitter.prototype, { ….. 据我所知,EventEmitter和Facebook的调度有很多共同之处。 例如,两者都可以发出(或派发)一个事件。 我的问题是为什么我需要EventEmitter和调度程序? 这不是多余的吗? 创build一个包含EventEmitter所需行为的调度程序是不是更好?

在ES6类中使用EventEmitter

我正在尝试在ES6中运行我自己的类中的EventEmitter: "use strict"; const EventEmitter = require('events'); class Client extends EventEmitter{ constructor(token, client_id, client_secret, redirect_uri, code){ super(); this.token = token; this.client_id = client_id; this.client_secret = client_secret; this.redirect_uri = redirect_uri; this.code = code; } eventTest(){ this.emit("event"); console.log(this.token); } } let testClient = new Client(1,2,3,4,5); testClient.eventTest(); testClient.on('event', () => {console.log('triggerd!')} ); 但事件没有做什么^^ 没有ES6我得到它与这个代码的工作: var util = require('util'); […]

如何解决反应原生EventEmitterListener警告

我正在使用事件发射器在地图组件和工具栏之间进行通信。 注意*我在我的应用程序的其他部分使用相同的代码没有问题。 我得到的错误是: 警告:setState(…):只能更新已安装或已安装的组件。 这通常意味着您在卸载的组件上调用了setState()。 这是一个没有操作。 请检查未定义组件的代码。 我试图解决这个类似的post,但它不工作。 我认为这两个组件的挂载&&卸载方法? 工具栏组件 componentDidMount() { this.showLocateIconListener = AppEventEmitter.addListener('isTrip', this.isTrip.bind(this)); this.endTripListener = AppEventEmitter.addListener('showLocateIcon', this.showLocateIcon.bind(this)); this.endSubdivisionIcon = AppEventEmitter.addListener('showSubdivisionIcon', this.showSubdivisionIcon.bind(this)); } componentWillUnMount() { this.showLocateIconListener.remove(); this.endTripListener.remove(); this.endSubdivisionIcon.remove(); } //// this is where the error is happening showSubdivisionIcon(val) { if (val != 0) this.setState({ items: menuSubdivision, subdivisionId: val }) else this.setState({ items: menu […]

Nodejs:全局使用eventEmitter对象

可以说我有3个暴露的职能:用户,职位,文章 所有这些都需要发送消息到一个名为mediator的文件中,在这个文件中设置了所有的事件。 目前我很难这样做 在调解器文件中,我有这样的东西: var EventEmitter = require('events').EventEmitter; , pubsub = new EventEmitter(); exports.pubsub = new EventEmitter() pubsub.on('loggedIn', function(msg) { console.log(msg); }); 并在用户,文章和文章function。 像这样的东西: var mediator = require('../config/mediator') , _ = require('underscore') exports.account = function(req, res) { var returned = _.omit(req.user._doc, 'password' ) mediator.pubsub.emit('loggedIn', 'A User logged in'); res.send(returned); }; 发射被完全忽略,没有错误或任何东西。 不知道我是否做得对,所以任何方向将不胜感激。 期望的回报是按预期工作。

javascript eventemitter多个事件一次

我正在使用节点的eventemitter,尽pipe欢迎其他事件库的build议。 如果有几个事件被触发,我想运行一个函数。 应该听取多个事件,但如果有任何一个事件触发,则所有事件都将被删除。 希望这个代码示例演示了我在找什么。 var game = new eventEmitter(); game.once(['player:quit', 'player:disconnect'], function () { endGame() }); 什么是最清洁的方式来处理这个问题? 注意:由于会绑定其他监听器,因此需要单独删除绑定函数。

连接两个(或n个)stream

2stream: 给定可读stream stream1和stream2 , 获取包含stream1和stream2的stream的方式是什么是一种习惯的(简洁的)方式? 我不能做stream1.pipe(outStream); stream2.pipe(outStream) stream1.pipe(outStream); stream2.pipe(outStream) ,因为那么stream内容混杂在一起。 nstream: 给定一个EventEmitter ,发出不确定数量的stream,例如 eventEmitter.emit('stream', stream1) eventEmitter.emit('stream', stream2) eventEmitter.emit('stream', stream3) … eventEmitter.emit('end') 什么是一种习惯(简洁)的方式来获得所有stream串联在一起的stream ?