StartWith

在开始发出源 Observable 中的项目之前,发出指定的项目序列

如果您希望一个 Observable 在开始发出它通常期望的项目之前发出特定的项目序列,请将 StartWith 操作符应用于它。

(另一方面,如果您想将项目序列追加到 Observable 通常发出的项目末尾,您需要 Concat 操作符。)

另请参阅

特定语言信息

cons

RxClojure 将此操作符实现为 cons。它以一个项目和一个 Observable 作为参数,并将项目预先添加到 Observable 发出的项目中,作为它自己的 Observable 序列。

start_with

RxCpp 将此操作符实现为 start_with。它以一个 Observable 和一个或多个项目作为参数,并将这些项目(按照它们在参数列表中给出的顺序)预先添加到 Observable 发出的项目中,作为它自己的 Observable 序列。

RxGroovy 将此操作符实现为 startWith

startWith

您可以将要预先添加到 Observable 序列的值传递给 startWith,无论是在单个 Iterable 中,还是作为一系列一到九个函数参数。

示例代码

def myObservable = Observable.from([1, 2, 3]);

myObservable.startWith(-3, -2, -1, 0).subscribe(
  { println(it); },                          // onNext
  { println("Error: " + it.getMessage()); }, // onError
  { println("Sequence complete"); }          // onCompleted
);
-3
-2
-1
0
1
2
3
startWith

您还可以将 startWith 传递一个 Observable,它将预先添加该 Observable 的发射到源 Observable 的发射,以生成它自己的发射集。这是一种反向的 Concat 操作。

RxJava 将此操作符实现为 startWith

startWith

您可以将要预先添加到 Observable 序列的值传递给 startWith,无论是在单个 Iterable 中,还是作为一系列一到九个函数参数。

startWith

您还可以将 startWith 传递一个 Observable,它将预先添加该 Observable 的发射到源 Observable 的发射,以生成它自己的发射集。这是一种反向的 Concat 操作。

startWith

RxJS 将此操作符实现为 startWith。它接受可变数量的函数参数,并将每个参数视为一个项目,它将在参数列表中给出的顺序中预先添加到生成的 Observable 序列中。

startWith 位于以下发行版中

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

RxKotlin 将此操作符实现为 startWith

startWith

您可以将要预先添加到 Observable 序列的值传递给 startWith,无论是在单个 Iterable 中,还是作为一系列一到九个函数参数。

startWith

您还可以将 startWith 传递一个 Observable,它将预先添加该 Observable 的发射到源 Observable 的发射,以生成它自己的发射集。这是一种反向的 Concat 操作。

StartWith

Rx.NET 将此操作符实现为 StartWith。它接受一个项目数组,它将这些项目按照它们在数组中出现的顺序预先添加到生成的 Observable 序列中,然后发出源 Observable 中的项目。

RxPHP 将此操作符实现为 startWith

使用预先添加的信号值的参数,将值预先添加到可观察序列中。

示例代码

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

$source = \Rx\Observable::of(2)
    ->startWith(1);

$subscription = $source->subscribe($stdoutObserver);

   
Next value: 1
Next value: 2
Complete!
    

RxPHP 还具有 startWithArray 操作符。

使用预先添加的值数组的参数,将值序列预先添加到可观察序列中。

示例代码

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

$source = \Rx\Observable::of(4)
    ->startWithArray([1, 2, 3]);

$subscription = $source->subscribe($stdoutObserver);

   
Next value: 1
Next value: 2
Next value: 3
Next value: 4
Complete!
    
start_with

RxPY 将此操作符实现为 start_with。它接受一个项目数组,它将这些项目按照它们在数组中出现的顺序预先添加到生成的 Observable 序列中,然后发出源 Observable 中的项目。

start_with

Rx.rb 将此操作符实现为 start_with。它接受一个项目数组,它将这些项目按照它们在数组中出现的顺序预先添加到生成的 Observable 序列中,然后发出源 Observable 中的项目。

plus colon

RxScala 使用 +: 实现此操作符。它以一个项目和一个 Observable 作为参数,并将项目预先添加到 Observable 发出的项目中,作为它自己的 Observable 序列。