Spec-Zone.ru › ReactiveX

Пустое

создаёт Observable, не излучающее элементов, но завершающееся нормально
Empty

Никогда

создаёт Observable, не излучающее элементов и не завершающееся

Never

Выбросить

создаёт Observable, не излучающее элементов и завершающееся с ошибкой

Throw

Операторы Empty, Never и Throw генерируют Observable с очень специфичным и ограниченным поведением. Они полезны для целей тестирования, а иногда и для комбинирования с другими Observable или в качестве параметров операторов, ожидающих другие Observable в качестве параметров.

См. также

  • Введение в Rx: Простые методы фабрики

Информация, специфичная для языка

RxGroovy empty never error

RxGroovy реализует эти операторы как empty, never, и error. Оператор error принимает в качестве параметра Throwable, с которым вы хотите, чтобы Observable завершалось.

По умолчанию эти операторы не работают с конкретным Расписанием, но empty и error необязательно принимают расписание в качестве параметра, и если вы передадите им расписание, они будут вызывать свои уведомления о завершении на этом расписании.

Пример кода

println("*** empty() ***");
Observable.empty().subscribe(
  { println("empty: " + it); },                      // onNext
  { println("empty: error - " + it.getMessage()); }, // onError
  { println("empty: Sequence complete"); }           // onCompleted
);

println("*** error() ***");
Observable.error(new Throwable("badness")).subscribe(
  { println("error: " + it); },                      // onNext
  { println("error: error - " + it.getMessage()); }, // onError
  { println("error: Sequence complete"); }           // onCompleted
);

println("*** never() ***");
Observable.never().subscribe(
  { println("never: " + it); },                      // onNext
  { println("never: error - " + it.getMessage()); }, // onError
  { println("never: Sequence complete"); }           // onCompleted
);
println("*** END ***");
*** empty() ***
empty: Sequence complete
*** error() ***
error: error - badness
*** never() ***
*** END ***
  • Javadoc: empty()
  • Javadoc: never()
  • Javadoc: error(throwable)

RxJava 1․x empty never error

RxJava 1.x реализует эти операторы как empty, never, и error. Оператор error принимает в качестве параметра Throwable, с которым вы хотите завершить Observable.

По умолчанию эти операторы не работают с конкретным Расписанием, но empty и error необязательно принимают расписание в качестве параметра, и если вы передадите им расписание, они будут вызывать свои уведомления о завершении на этом расписании.

  • Javadoc: empty()
  • Javadoc: never()
  • Javadoc: error(throwable)

RxJava 2․x empty never error

RxJava 2.x реализует эти операторы как empty, never, и error. Оператор error принимает в качестве параметра Throwable, с которым вы хотите завершить Observable, или Callable, который возвращает такой Throwable.

По умолчанию эти операторы не работают с конкретным Расписанием.

  • Javadoc: empty()
  • Javadoc: never()
  • Javadoc: error(Callable)
  • Javadoc: error(Throwable)

RxJS empty never throw

RxJS реализует эти операторы как empty, never, и throw.

Пример кода

var source = Rx.Observable.empty();

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Completed
// This will never produce a value, hence never calling any of the callbacks
var source = Rx.Observable.never();

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
var source = Rx.Observable.return(42)
    .selectMany(Rx.Observable.throw(new Error('error!')));

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

empty можно найти в следующих дистрибутивах:

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

never можно найти в следующих дистрибутивах:

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

throw можно найти в следующих дистрибутивах:

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

RxPHP empty never error

RxPHP реализует этот оператор как empty.

Возвращает пустую последовательность observable.

Пример кода

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

$observable = \Rx\Observable::empty();
$observable->subscribe($stdoutObserver);
Complete!

RxPHP также имеет оператор never.

Возвращает не завершающуюся последовательность observable, которая может быть использована для обозначения бесконечной продолжительности.

Пример кода

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

$observable = \Rx\Observable::never();
$observable->subscribe($stdoutObserver);

RxPHP также имеет оператор error.

Возвращает последовательность observable, которая завершается исключением.

Пример кода

//from https://github.com/ReactiveX/RxPHP/blob/master/demo/error-observable/error-observable.php

$observable = Rx\Observable::error(new Exception('Oops!'));
$observable->subscribe($stdoutObserver);
Exception: Oops!

© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/empty-never-throw.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API