• buffer
    • 签名: buffer(closingNotifier: Observable): Observable
  • 收集输出值,直到提供的 observable 发出才将收集到的值作为数组发出。
    • 示例
      • 示例 1: 缓冲值直到点击页面
  • 相关食谱
  • 其他资源

    buffer

    签名: buffer(closingNotifier: Observable): Observable

    收集输出值,直到提供的 observable 发出才将收集到的值作为数组发出。

    buffer - 图1

    示例

    示例 1: 缓冲值直到点击页面

    ( StackBlitz |
    jsBin |
    jsFiddle )

    1. import { interval } from 'rxjs/observable/interval';
    2. import { fromEvent } from 'rxjs/observable/fromEvent';
    3. import { buffer } from 'rxjs/operators';
    4. // 创建每1秒发出值的 observable
    5. const myInterval = interval(1000);
    6. // 创建页面点击事件的 observable
    7. const bufferBy = fromEvent(document, 'click');
    8. /*
    9. 收集由 myInterval 发出的所有值,直到我们点击页面。此时 bufferBy 会发出值以完成缓存。
    10. 将自上次缓冲以来收集的所有值传递给数组。
    11. */
    12. const myBufferedInterval = myInterval.pipe(buffer(bufferBy));
    13. // 打印值到控制台
    14. // 例如 输出: [1,2,3] ... [4,5,6,7,8]
    15. const subscribe = myBufferedInterval.subscribe(val =>
    16. console.log(' Buffered Values:', val)
    17. );

    相关食谱

    • 游戏循环

    其他资源

    • buffer :newspaper: - 官方文档
    • 转换操作符: buffer :video_camera: :dollar: - André Staltz

    :file_folder: 源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/buffer.ts