RxJS运算符“ buffer”和“ bufferWhen”有什么区别?

阿斯德鲁巴利万

我正在学习Angular和RxJS。在阅读一本名为《 RxJS》的书籍时,我看到了两个运算符的提法。第一个接收并作为参数可观察到,第二个接收选择器函数。似乎两个缓冲区都基于这些参数缓冲内容。

它们之间有什么区别?什么时候应该使用缓冲区而不是bufferWhen运算符?

反t

buffer 一次订阅其参数,该订阅的每次发射都发出信号通知当前缓冲区关闭并发射,从而重新启动缓冲区。

to的参数bufferWhen是一个返回可观察值的函数。bufferWhen调用它并立即订阅结果,等待发射信号通知其缓冲区关闭。至关重要的是,第一个发射将是唯一重要的发射,因为在该事件发生时,缓冲区关闭,对信号可观察信号的订阅结束,并且重复本段中的步骤,直到我们正在缓冲的可观察信号完成为止。

什么时候有用?有时,在缓冲可观察对象时,可能需要进行一些设置,然后才能在正确的时间发射信号。此设置可能涉及生成一些初始值,可能基于当前的“世界状况”,或者随机生成。在撰写本文时,所述的Rx文档用于bufferWhen描述缓冲上,每次持续不同的随机持续时间的计时器的实例。

附录:为了可视化两者之间的区别,bufferWhen使用buffer以下命令查看实现非常有用

const myBufferWhen = fn => buffer(
  defer(fn).pipe(
    take(1),
    repeat()
  )
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

rxjs 5中的发布和多播运算符有什么区别?

来自分类Dev

:=和=运算符有什么区别?

来自分类Dev

!=和<>运算符有什么区别?

来自分类Dev

Comparable和运算符compareTo有什么区别?

来自分类Dev

:=和=运算符有什么区别?

来自分类Dev

vhdl +运算符和+函数有什么区别?

来自分类Dev

Autohotkey::= 和 = 赋值运算符有什么区别

来自分类Dev

r编程语言中的'/'运算符和“%/%”运算符有什么区别?

来自分类Dev

逗号运算符和逗号分隔符有什么区别?

来自分类Dev

C ++数组运算符和*(array + index)(如果有)有什么区别?

来自分类Dev

JavaScript中+运算符和concat()方法有什么区别

来自分类Dev

Angular 2:ngIf指令中比较运算符==和===之间有什么区别

来自分类Dev

>运算符和Set-Content cmdlet有什么区别

来自分类Dev

不实现和删除通用运算符有什么区别?

来自分类Dev

显式原子加载/存储与常规operator =和运算符T有什么区别?

来自分类Dev

fdefiniton和CL中的函数(特殊运算符)有什么区别?

来自分类Dev

LR(1)语法和运算符优先级语法有什么区别?

来自分类Dev

相等运算符和deepEquals in go有什么区别?

来自分类Dev

在性能方面,UNION和CONCATENATION运算符有什么区别?

来自分类Dev

在R编程中,any和|之间有什么区别?(或)布尔运算符?

来自分类Dev

Jsonnet中的+运算符和std.mergePatch有什么区别?

来自分类Dev

`numpy`中的`slice`(:)和`ellipsis`(...)运算符有什么区别?

来自分类Dev

Django:Queryset.union()和OR运算符有什么区别?

来自分类Dev

ifelse和Julia中的三元运算符有什么区别?

来自分类Dev

使用“或”运算符和使用多个子句之间有什么区别吗?

来自分类Dev

>运算符和Set-Content cmdlet有什么区别

来自分类Dev

NHibernate Linq中的Equals方法和==运算符有什么区别?

来自分类Dev

LR(1)语法和运算符优先级语法有什么区别?

来自分类Dev

快速可选类型中的`!`和`?`运算符有什么区别?

Related 相关文章

  1. 1

    rxjs 5中的发布和多播运算符有什么区别?

  2. 2

    :=和=运算符有什么区别?

  3. 3

    !=和<>运算符有什么区别?

  4. 4

    Comparable和运算符compareTo有什么区别?

  5. 5

    :=和=运算符有什么区别?

  6. 6

    vhdl +运算符和+函数有什么区别?

  7. 7

    Autohotkey::= 和 = 赋值运算符有什么区别

  8. 8

    r编程语言中的'/'运算符和“%/%”运算符有什么区别?

  9. 9

    逗号运算符和逗号分隔符有什么区别?

  10. 10

    C ++数组运算符和*(array + index)(如果有)有什么区别?

  11. 11

    JavaScript中+运算符和concat()方法有什么区别

  12. 12

    Angular 2:ngIf指令中比较运算符==和===之间有什么区别

  13. 13

    >运算符和Set-Content cmdlet有什么区别

  14. 14

    不实现和删除通用运算符有什么区别?

  15. 15

    显式原子加载/存储与常规operator =和运算符T有什么区别?

  16. 16

    fdefiniton和CL中的函数(特殊运算符)有什么区别?

  17. 17

    LR(1)语法和运算符优先级语法有什么区别?

  18. 18

    相等运算符和deepEquals in go有什么区别?

  19. 19

    在性能方面,UNION和CONCATENATION运算符有什么区别?

  20. 20

    在R编程中,any和|之间有什么区别?(或)布尔运算符?

  21. 21

    Jsonnet中的+运算符和std.mergePatch有什么区别?

  22. 22

    `numpy`中的`slice`(:)和`ellipsis`(...)运算符有什么区别?

  23. 23

    Django:Queryset.union()和OR运算符有什么区别?

  24. 24

    ifelse和Julia中的三元运算符有什么区别?

  25. 25

    使用“或”运算符和使用多个子句之间有什么区别吗?

  26. 26

    >运算符和Set-Content cmdlet有什么区别

  27. 27

    NHibernate Linq中的Equals方法和==运算符有什么区别?

  28. 28

    LR(1)语法和运算符优先级语法有什么区别?

  29. 29

    快速可选类型中的`!`和`?`运算符有什么区别?

热门标签

归档