当前位置: 首页 > 知识库问答 >
问题:

反应式扩展运算符SkipLast如何工作?

淳于宏伯
2023-03-14

在Reactivex中。IO文档据称

通过使用SkipLast操作符修改可观察对象,可以忽略可观察对象发出的最后n个项目,只关注它们之前的项目。

我的期望:SkipLast将读取整个可观察的,直到它满足OnComplated,然后生成一个新的可观察的,时间作为原始时间,但跳过最后时间。

我的疑问是:SkipLast操作符如何知道“3”是可观测的最后第二项?如果看不到未完成的,它怎么能说出最后的第n项?

共有2个答案

蓝星辰
2023-03-14

从源代码中,如果使用了skipLast(N),则消息将保存在this中_环形阵列。一旦发出N 1到达的第一条消息,N 2就到达了=

狄法
2023-03-14

感谢@PanagiotisKanavos,@akarnokd的宝贵评论。

它在内部使用固定大小的队列实现。从序列中取出项目并对其进行入队,当队列已满并开始溢出时,将项目出队

 类似资料:
  • 我不确定我在这里使用的词汇,如果我错了,请纠正我。 在Javascript中,我有以下代码: 如您所见,当调用时,我可以使用spread运算符,以便将我的参数“转换”为。 现在,我正试图用Java做同样的事情。 假设我有一门课: 现在我想调用: 我想使用类似于的东西,而不是调用。 我在函数声明中看到了这一点,但我不想改变这样一个函数的实现。

  • 问题内容: 我已经安装了模块。 模式集为。要使用它,我必须运行以下选择: 我正在尝试使用运算符运行一条语句,并收到以下消息。 运行或操作员需要什么? 问题答案: 这很可能是的问题。run: 是否包含安装pg_trgm的架构?如果没有,请包括在内。 另外,您可以使用结构对函数进行模式限定-甚至运算符: 使它独立于。

  • 为什么一定要使用 ...path 才能正确的运行,在上面代码中测试的结果是一样的,而下面则一定要用 ... ?否则就会出现如图2所示的结果 这段代码是 解决 (给定两个整数 n 和 k,返回范围 [1,n] 中所有可能的 k 个数的组合。) 这个问题的 ,用的回溯

  • 问题内容: 问题的答案 是否可以在JavaScript中创建自定义运算符? 是 没有的,但@Benjamin建议,这将有可能使用添加一个新的运营商 的第三方工具 : 可以使用sweet.js之类的第三方工具来添加自定义运算符,尽管这需要额外的编译步骤。 我将采用相同的示例,就像上一个问题一样: (ℝ,∘),x y = x + 2y 对于任何两个实数 x 和 y : x y 是 x + 2y ,这也

  • 本文向大家介绍ES6扩展运算符和rest运算符用法实例分析,包括了ES6扩展运算符和rest运算符用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ES6扩展运算符和rest运算符用法。分享给大家供大家参考,具体如下: 运算符可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁。 运算符有两种:对象扩展运算符与rest运算符。 1.对象扩展( spread

  • 本文向大家介绍C#中反射和扩展方法如何运用,包括了C#中反射和扩展方法如何运用的使用技巧和注意事项,需要的朋友参考一下 前段时间做了一个练手的小项目,名叫Book_Bar,用来卖书的,采用的是三层架构,也就是Models,IDAL,DAL,BLL 和 Web , 在DAL层中各个类中有一个方法比较常用,那就是RowToClass ,顾名思义,也就是将DataTable 中的数据封装到Models