Пустое
создаёт Observable, не излучающее элементов, но завершающееся нормально
Никогда
создаёт Observable, не излучающее элементов и не завершающееся
Выбросить
создаёт Observable, не излучающее элементов и завершающееся с ошибкой
Операторы Empty, Never и Throw генерируют Observable с очень специфичным и ограниченным поведением. Они полезны для целей тестирования, а иногда и для комбинирования с другими Observable или в качестве параметров операторов, ожидающих другие Observable в качестве параметров.
См. также
Информация, специфичная для языка
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.jsrx.all.jsrx.all.compat.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
never можно найти в следующих дистрибутивах:
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
throw можно найти в следующих дистрибутивах:
rx.jsrx.all.jsrx.compat.jsrx.lite.jsrx.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