【发布时间】:2016-10-26 09:26:40
【问题描述】:
我对 RxJS 印象深刻,并开始着手研究。但是,我的以下 nodejs 代码至少对我来说不能按预期工作。
let events = new EventEmitter();
let source = Rx.Observable.fromEvent( events, 'data' );
source
.groupBy( event => event.type )
.flatMap( group => group.reduce( ( acc, cur ) => _.merge( acc, cur ), [] ) )
.subscribe( ( data ) => {
console.log( data );
} );
events.emit( 'data', { 'type': 1, msg: 'Test 1' } );
events.emit( 'data', { 'type': 1, msg: 'Test 2' } );
events.emit( 'data', { 'type': 2, msg: 'Test 3' } );
我希望subscribe 产生一些输出
【问题讨论】:
-
这应该产生什么输出?
-
它实际上什么也没产生。我期望根据
groupBy分组的数组数组。[ [ { 'type': 1, msg: 'Test 1' }, { 'type': 1, msg: 'Test 2' ], [ { 'type': 2, msg: 'Test 3' } ] }. -
您从哪里获得 EventEmitter?它是starndard rxjs 库的一部分还是ng2 类?你有没有机会把它放在一个正在运行的 jsbin 中?
-
@Meir 这是一个标准的node.js 类nodejs.org/api/events.html#events_class_eventemitter
-
我会准备一个在线运行版本。
标签: node.js reactive-programming rxjs