[RxJS] Transformation operator: buffer, bufferCount, bufferTime
2016-05-27 18:24
281 查看
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.
bufferTime(number):
bufferCount(number):
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" */
相关文章推荐
- (一)CSS书写基础、背景、文字属性
- 文章标题
- 前端开发笔记--关于插件
- js一键复制,Clipboard.js:不用Flash实现剪贴板功能的轻量级JavaScript库
- javascript 面向对象基础(三)面向对象的常用属性和方法
- html5 canvas 画图时的bug
- js犀牛书
- HTML上传总结
- protocol buffers简单介绍
- jQuery自定义函数
- irda-objs和irda-obj的差别,烧写一个字母的悲剧
- bootstrap-datetimepicker的bug整理
- Caffe 学习笔记,持续更新版。。
- background-position的百分比是怎么计算定位的
- jquery动画效果总结
- node stream
- Angular
- JavaScript获取URL参数
- JavaScript笔记(3)关于重复的定义和遗漏的定义
- html<meta>标签