SkipLast

抑制 Observable 发出的最后 n 个项目

您可以通过使用 SkipLast 运算符修改 Observable,忽略 Observable 发出的最后 n 个项目,只关注其前面的项目。

另请参见

特定语言信息

待定

待定

skipLast

您可以通过使用 skipLast(n) 运算符修改 Observable,忽略 Observable 发出的最后 n 个项目,只关注其前面的项目。请注意,这将延迟对源 Observable 的任何项目的发出,直到该 Observable 额外发出 n 个项目。

skipLast 变体默认情况下不针对任何特定的 Scheduler 进行操作。

skipLast

skipLast 还有一种变体,它接受一个时间持续时间而不是项目数量。它会丢弃在源 Observable 的生命周期中的最后持续时间内发出的项目。您可以通过将时间长度和此长度所代表的时间单位作为参数传递给 skipLast 来设置此持续时间。

请注意,这将延迟对源 Observable 的任何项目的发出,直到自发出后经过给定的持续时间。

skipLast 变体默认情况下针对 computation Scheduler 进行操作,但您也可以将您选择的 Scheduler 作为可选的第三个参数传递。

skipLast

您可以通过使用 skipLast(n) 运算符修改 Observable,忽略 Observable 发出的最后 n 个项目,只关注其前面的项目。请注意,这将延迟对源 Observable 的任何项目的发出,直到该 Observable 额外发出 n 个项目。

skipLast 变体默认情况下不针对任何特定的 Scheduler 进行操作。

skipLast

skipLast 还有一种变体,它接受一个时间持续时间而不是项目数量。它会丢弃在源 Observable 的生命周期中的最后持续时间内发出的项目。您可以通过将时间长度和此长度所代表的时间单位作为参数传递给 skipLast 来设置此持续时间。

请注意,这将延迟对源 Observable 的任何项目的发出,直到自发出后经过给定的持续时间。

skipLast 变体默认情况下针对 computation Scheduler 进行操作,但您也可以将您选择的 Scheduler 作为可选的第三个参数传递。

skipLast

您可以通过使用 skipLast(n) 运算符修改 Observable,忽略 Observable 发出的最后 n 个项目,只关注其前面的项目。请注意,这将延迟对源 Observable 的任何项目的发出,直到该 Observable 额外发出 n 个项目。

示例代码

var source = Rx.Observable.range(0, 5)
    .skipLast(3);

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Next: 0
Next: 1
Completed

skipLast 存在于以下每个发行版中

  • rx.js
  • rx.all.js
  • rx.all.compat.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js
skipLastWithTime

skipLastWithTime 运算符接受一个时间持续时间而不是项目数量。它会丢弃在源 Observable 的生命周期中的最后持续时间内发出的项目。您可以通过将毫秒数作为参数传递给 skipLastWithTime 来设置此持续时间。

请注意,这将延迟对源 Observable 的任何项目的发出,直到自发出后经过给定的持续时间。

skipLastWithTime 默认情况下针对 timeout Scheduler 进行操作,但您也可以将您选择的 Scheduler 作为可选的第二个参数传递。

示例代码

var source = Rx.Observable.timer(0, 1000)
    .take(10)
    .skipLastWithTime(5000);

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Next: 0
Next: 1
Next: 2
Next: 3
Next: 4
Completed

skipLastWithTime 存在于以下每个发行版中

  • rx.all.js
  • rx.all.compat.js
  • rx.time.js(需要 rx.jsrx.compat.js
  • rx.lite.js
  • rx.lite.compat.js

RxPHP 将此运算符实现为 skipLast

绕过可观察序列末尾的指定数量的元素。此运算符使用一个队列进行累积,该队列的长度足以存储前 `count` 个元素。随着接收更多元素,从队列的开头获取元素,并在结果序列上生成。这会导致元素延迟。

示例代码

//from https://github.com/ReactiveX/RxPHP/blob/master/demo/skip/skipLast.php

$observable = Rx\Observable::range(0, 5)
    ->skipLast(3);

$observable->subscribe($stdoutObserver);

   
Next value: 0
Next value: 1
Complete!