Skip

抑制 Observable 發射的前 n 個項目

您可以忽略 Observable 發射的前 n 個項目,並僅關注後續的項目,方法是使用 Skip 運算子修改 Observable。

參見

特定語言資訊

待定

skip

在 RxGroovy 中,此運算子以 skip 實作。

程式碼範例

numbers = Observable.from([1, 2, 3, 4, 5, 6, 7, 8]);

numbers.skip(3).subscribe(
  { println(it); },                          // onNext
  { println("Error: " + it.getMessage()); }, // onError
  { println("Sequence complete"); }          // onCompleted
);
4
5
6
7
8
Sequence complete

這個 skip 變體預設不會在任何特定的 Scheduler 上運作。

skip

還有一個 skip 的變體,它接受時間長度而不是項目數量。 它會捨棄在來源 Observable 生命週期的初始時間長度內發射的項目。 您可以透過傳入時間長度和此時間長度所使用的時間單位作為 skip 的參數來設定此時間長度。

這個 skip 變體預設在 computation Scheduler 上運作,但您也可以傳入您選擇的 Scheduler 作為第三個選用參數。

skip

在 RxJava 中,此運算子以 skip 實作。

這個 skip 變體預設不會在任何特定的 Scheduler 上運作。

skip

還有一個 skip 的變體,它接受時間長度而不是項目數量。 它會捨棄在來源 Observable 生命週期的初始時間長度內發射的項目。 您可以透過傳入時間長度和此時間長度所使用的時間單位作為 skip 的參數來設定此時間長度。

這個 skip 變體預設在 computation Scheduler 上運作,但您也可以傳入您選擇的 Scheduler 作為第三個選用參數。

skip

RxJS 實作了 skip 運算子。

程式碼範例

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

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

skip 在下列每個發行版本中都可以找到

  • rx.js
  • rx.all.js
  • rx.all.compat.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js
skipUntilWithTime

RxJS 還實作了 skipUntilWithTime 運算子,它不會跳過來源 Observable 的特定項目數量,而是根據時間順序跳過項目。 您可以透過傳入以下格式的參數給 skipUntilWithTime 來設定此跳過期間

一個數字
從 Observable 被訂閱後經過這麼多毫秒開始,跳過來源 Observable 的項目
一個 Date
跳過來源 Observable 的項目,直到這個絕對時間

您也可以選擇性地傳入一個 Scheduler 作為第二個參數,計時器將在該 Scheduler 上運作 (skipUntilWithTime 預設使用 timeout Scheduler)。

程式碼範例

var source = Rx.Observable.timer(0, 1000)
    .skipUntilWithTime(5000);

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

skipUntilWithTime 在下列每個發行版本中都可以找到

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

待定

待定

RxPHP 以 skip 實作此運算子。

程式碼範例

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

use Rx\Observable\ArrayObservable;

$observable = Rx\Observable::fromArray([1, 1, 2, 3, 5, 8, 13]);
$observable
    ->skip(3)
    ->subscribe($stdoutObserver);

   
Next value: 3
Next value: 5
Next value: 8
Next value: 13
Complete!
    

待定

待定

待定