Spec-Zone.ru › ReactiveX

Содержимое

определить, испускает ли Observable определённый элемент или нет
Открыть интерактивную диаграмму на rxmarbles.com

Передайте оператору Contains конкретный элемент, и Observable, которое он возвращает, будет испускать true если этот элемент испускается исходным Observable, или false если исходный Observable завершается без испускания этого элемента.

Связанный оператор IsEmpty возвращает Observable, который испускает true тогда и только тогда, когда исходный Observable завершается без испускания каких-либо элементов. Он испускает false если исходный Observable испускает элемент.

См. также

  • All
  • Введение в Rx: Contains
  • RxMarbles: contains
  • RxMarbles: some

Информация для конкретного языка

RxGroovy contains exists isEmpty

contains

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

  • Javadoc: contains(Object)
exists

RxGroovy также реализует оператор exists. Он похож на contains, но проверяет элементы, испускаемые исходным Observable, по заданной вами функции-предикату, а не по идентичности с конкретным объектом. Observable, возвращаемое из exists, вернёт true если исходный Observable испустит элемент, удовлетворяющий вашей функции-предикату, и false если он завершится без испускания такого элемента.

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

  • Javadoc: exists(Func1)
isEmpty

RxGroovy также реализует оператор isEmpty. Observable, возвращаемое из isEmpty, вернёт false если исходный Observable испустит элемент, и true если он завершится без испускания элемента.

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

  • Javadoc: isEmpty()

RxJava 1․x contains exists isEmpty

contains

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

  • Javadoc: contains(Object)
exists

RxJava также реализует оператор exists. Он похож на contains, но проверяет элементы, испускаемые исходным Observable, по заданной вами функции-предикату, а не по идентичности с конкретным объектом. Observable, возвращаемое из exists, вернёт true если исходный Observable испустит элемент, удовлетворяющий вашей функции-предикату, и false если он завершится без испускания такого элемента.

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

  • Javadoc: exists(Func1)
isEmpty

RxJava также реализует оператор isEmpty. Observable, возвращаемое из isEmpty, вернёт false если исходный Observable испустит элемент, и true если он завершится без испускания элемента.

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

  • Javadoc: isEmpty()

RxJava 2․x any contains isEmpty

RxJS contains findIndex indexOf isEmpty

contains

Оператор contains в RxJS принимает необязательный второй параметр: индекс (с нуля) в последовательности источника Observable, с которого начать поиск элемента.

Пример кода

/* Without an index */
var source = Rx.Observable.of(42)
  .contains(42);

var subscription = source.subscribe(
  function (x) { console.log('Next: %s', x); },
  function (err) { console.log('Error: %s', err); },
  function () { console.log('Completed'); });
Next: true
Completed
/* With an index */
var source = Rx.Observable.of(1,2,3)
  .contains(2, 1);

var subscription = source.subscribe(
  function (x) { console.log('Next: %s', x); },
  function (err) { console.log('Error: %s', err); },
  function () { console.log('Completed'); });
Next: true
Completed

contains доступен в следующих дистрибутивах:

  • rx.all.js
  • rx.all.compat.js
  • rx.aggregates.js

Для него требуется один из следующих дистрибутивов:

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

Оператор indexOf в RxJS похож на contains, но вместо возвращения Observable, испускающего true или false, он возвращает Observable, испускающий индекс элемента в последовательности исходного Observable, или −1, если такой элемент не был испущен.

Оператор indexOf принимает необязательный второй параметр: индекс (с нуля) в последовательности исходного Observable, с которого начать поиск элемента. Значение индекса, которое испускает результирующее Observable, будет относиться к этому начальному пункту, а не к началу последовательности.

Пример кода

/* Without an index */
var source = Rx.Observable.of(42)
  .indexOf(42);

var subscription = source.subscribe(
  function (x) { console.log('Next: %s', x); },
  function (err) { console.log('Error: %s', err); },
  function () { console.log('Completed'); });
Next: 0 
Completed
/* With an index */
var source = Rx.Observable.of(1,2,3)
  .indexOf(2, 1);

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

indexOf доступен в следующих дистрибутивах:

  • rx.all.js
  • rx.all.compat.js
  • rx.aggregates.js

Для него требуется один из следующих дистрибутивов:

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

Оператор findIndex в RxJS принимает в качестве параметра функцию-предикат. Он возвращает Observable, который испускает либо одно число — нулевой индекс первого элемента в последовательности исходного Observable, соответствующего предикату, — или −1, если такой элемент не соответствует.

Функция-предикат принимает три параметра:

  • элемент, испущенный исходным Observable
  • нулевой индекс этого элемента
  • исходное Observable

Вы также можете передать объект в findIndex в качестве необязательного второго параметра, и этот объект будет доступен функции-предикату как «this».

Пример кода

/* Found an element */
var array = [1,2,3,4];

var source = Rx.Observable.fromArray(array)
    .findIndex(function (x, i, obs) {
        return x === 1;
    });

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

var source = Rx.Observable.fromArray(array)
    .findIndex(function (x, i, obs) {
        return x === 5;
    });

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

findIndex доступен в следующих дистрибутивах:

  • rx.all.js
  • rx.all.compat.js
  • rx.aggregates.js

Для него требуется один из следующих дистрибутивов:

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

RxJS также реализует оператор isEmpty. Observable, возвращаемое isEmpty, вернет false, если исходное Observable испустит элемент, и true, если оно завершится без испускания элемента.

Пример кода

/* Not empty */
var source = Rx.Observable.range(0, 5)
    .isEmpty()

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); });
Next: false
Completed
/* Empty */
var source = Rx.Observable.empty()
    .isEmpty()

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

isEmpty доступен в следующих дистрибутивах:

  • rx.all.js
  • rx.all.compat.js
  • rx.aggregates.js

Для него требуется один из следующих дистрибутивов:

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

RxPHP isEmpty

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

Если исходное Observable пустое, оно возвращает Observable, испускающее true, в противном случае — false.

Пример кода

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

$source = \Rx\Observable::emptyObservable()
    ->isEmpty();

$source->subscribe($stdoutObserver);
Next value: 1
Complete!
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/isEmpty/isEmpty-false.php

$source = \Rx\Observable::just(1)
    ->isEmpty();

$source->subscribe($stdoutObserver);
Next value: 0
Complete!

© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/contains.html

Spec-Zone.ru

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