You probably need to split the stream and use the second part to start the first.
var source = Rx.Observable.fromEvent(eventEmitter, 'log');
var closer = source.flatMapFirst(Rx.Observable.timer(2000));
source
.buffer(closer)
.map(addEventsToRequestOption)
.flatMap(function(x) { Promise.resolve(request(x)); })
.subscribe(log('Response received'));
source.flatMapFirst(Rx.Observable.timer(2000))
. Observable, , 2000 . , . flatMapFirst
, . , .
docs buffer
Observable