How to create a RxJS buffer that groups elements in NodeJS but that does not rely on forever running interval?

前端 未结 2 1341
無奈伤痛
無奈伤痛 2020-12-11 21:50

I\'m capturing events from an application using Rx.Observable.fromEvent in a NodeJS. These are sent to another server using request (https://www.npmjs.com/pack

2条回答
  •  独厮守ぢ
    2020-12-11 22:16

    A proposed implementation, using the delay operator :

    function emits(who){
      return function (x) { console.log([who, "emits"].join(" ") + " " + x + " click(s)");};
    }
    
    var source = Rx.Observable.fromEvent(document.body, 'click');
    console.log("running");
    
    var delayedSource$ = source.delay(1200);
    
    var buffered$ = source
         .buffer(function () { return  delayedSource$;}).map(function(clickBuffer){return clickBuffer.length;})
    
    buffered$.subscribe(emits("buffer"));
    

    jsbin here : http://jsbin.com/wilurivehu/edit?html,js,console,output

提交回复
热议问题