将一个特定的项目传递给 Contains 操作符,它返回的 Observable 将在源 Observable 发出该项目时发出 true,或者在源 Observable 终止而没有发出该项目时发出 false。
一个相关的操作符,IsEmpty 返回一个 Observable,当且仅当源 Observable 在没有发出任何项目的情况下完成时,它发出 true。如果源 Observable 发出一个项目,则它发出 false。
待定
RxGroovy 将此操作符实现为 contains。默认情况下,它不会对任何特定的 调度器 进行操作。
contains(Object)
RxGroovy 还实现了 exists 操作符。它类似于 contains,但它会将源 Observable 发出的项目与您提供的谓词函数进行测试,而不是测试它们与特定对象的同一性。如果源 Observable 发出一个满足谓词函数的项目,则从 exists 返回的 Observable 将返回 true,如果它在没有发出此类项目的情况下完成,则返回 false。
默认情况下,它不会对任何特定的 调度器 进行操作。
exists(Func1)
RxGroovy 还实现了 isEmpty 操作符。从 isEmpty 返回的 Observable 将在源 Observable 发出一个项目时返回 false,如果它在没有发出项目的情况下完成,则返回 true。
默认情况下,它不会对任何特定的 调度器 进行操作。
isEmpty()
RxJava 将此操作符实现为 contains。默认情况下,它不会对任何特定的 调度器 进行操作。
contains(Object)
RxJava 还实现了 exists 操作符。它类似于 contains,但它会将源 Observable 发出的项目与您提供的谓词函数进行测试,而不是测试它们与特定对象的同一性。如果源 Observable 发出一个满足谓词函数的项目,则从 exists 返回的 Observable 将返回 true,如果它在没有发出此类项目的情况下完成,则返回 false。
默认情况下,它不会对任何特定的 调度器 进行操作。
exists(Func1)
RxJava 还实现了 isEmpty 操作符。从 isEmpty 返回的 Observable 将在源 Observable 发出一个项目时返回 false,如果它在没有发出项目的情况下完成,则返回 true。
默认情况下,它不会对任何特定的 调度器 进行操作。
isEmpty()
RxJS 中的 contains 操作符接受一个可选的第二个参数:一个从零开始的索引,用于在源 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.jsrx.all.compat.jsrx.aggregates.js它需要以下发行版之一
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
RxJS 中的 indexOf 操作符类似于 contains,但它不是返回发出 true 或 false 的 Observable,而是返回一个发出源 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.jsrx.all.compat.jsrx.aggregates.js它需要以下发行版之一
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
RxJS 中的 findIndex 操作符以谓词函数作为参数。它返回一个 Observable,该 Observable 或者发出单个数字(源 Observable 序列中第一个匹配谓词的项目的从零开始的索引),或者在没有此类项目匹配的情况下发出 −1。
谓词函数接受三个参数
您还可以将一个对象传递给 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.jsrx.all.compat.jsrx.aggregates.js它需要以下发行版之一
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
RxJS 还实现了 isEmpty 操作符。从 isEmpty 返回的 Observable 将在源 Observable 发出一个项目时返回 false,如果它在没有发出项目的情况下完成,则返回 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.jsrx.all.compat.jsrx.aggregates.js它需要以下发行版之一
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.jsRxPHP 将此操作符实现为 isEmpty。
如果源 Observable 为空,它将返回一个发出 true 的 Observable,否则它将发出 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!