zoukankan      html  css  js  c++  java
  • [RxJS] Transformation operator: buffer, bufferCount, bufferTime

    This lesson will teach you about another horizontal combination operator: buffer and its variants. Buffer groups consecutive values together, emitting the output as an array. The buffer variants and their arguments allow to specify when to close the buffers.

    buffer(close observable): According to another observalbe to group items.

    var foo = Rx.Observable.of('h', 'e', 'l', 'l', 'o')
      .zip(Rx.Observable.interval(600).take(5), (x,y) => x);
    var bar = Rx.Observable.interval(900).take(3);
    
    /*
    -----h-----e-----l-----l-----o|       (foo)
    --------0--------1--------2|          (bar)
    
            buffer(bar)
    
    --------h--------e--------ll|
    */
    
    var result = foo.buffer(bar);
    
    result.subscribe(
      function (x) { console.log('next ' + x); },
      function (err) { console.log('error ' + err); },
      function () { console.log('done'); },
    );
      
      /*
    
    "next h"
    "next e"
    "next l,l"
    "done"
      
      */

    bufferTime(number): 

    var foo = Rx.Observable.of('h', 'e', 'l', 'l', 'o')
      .zip(Rx.Observable.interval(600).take(5), (x,y) => x);
    
    /*
    -----h-----e-----l-----l-----o|       (foo)
    --------x--------x--------x|          (900ms)
    
            bufferTime(900)
    
    --------h--------e--------ll|
    */
    
    var result = foo.bufferTime(900);
    
    result.subscribe(
      function (x) { console.log('next ' + x); },
      function (err) { console.log('error ' + err); },
      function () { console.log('done'); },
    );
      
      /*
    
    "next h"
    "next e"
    "next l,l"
    "done"
      
      */

    bufferCount(number):

    var foo = Rx.Observable.of('h', 'e', 'l', 'l', 'o')
      .zip(Rx.Observable.interval(600).take(5), (x,y) => x);
    
    /*
    -----h-----e-----l-----l-----o|       (foo)
    
            bufferCount(2)
    
    ----------([h,e])------([l,l])([o|])l
    */
    
    var result = foo.bufferCount(2);
    
    result.subscribe(
      function (x) { console.log('next ' + x); },
      function (err) { console.log('error ' + err); },
      function () { console.log('done'); },
    );
      
      /*
    
    "next h,e"
    "next l,l"
    "next o"
    "done"
      
      */
  • 相关阅读:
    在Maven中怎么配置外部Jar
    eclipse+jetty+web项目调试---不显示源码
    Java中的BIO,NIO,AIO分别是什么
    Eclipse启动的时候提示:Failed to load JavaHL Library
    一个电脑安装两个jdk版本
    Archive for required library: 'D:/Program Files/Apache/maven-repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar'
    Sybase PowerDesigner 16.5注册码
    DI:Defect Index(缺陷率)
    使用jave2将音频wav转换成mp3格式
    java实现zip,gzip,7z,zlib格式的压缩打包
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5535668.html
Copyright © 2011-2022 走看看