将谓词函数传递给 All 运算符,该运算符接受源可观察对象发出的项目,并根据对该项目的评估返回布尔值。 All 返回一个可观察对象,它发出一个布尔值:true
当且仅当源可观察对象正常终止并且源可观察对象发出的每个项目根据此谓词评估为 true
时;false
如果源可观察对象发出的任何项目根据此谓词评估为 false
。
待定
RxGroovy 将此运算符实现为 all
。它默认情况下不会在任何特定 调度器 上运行。以下示例展示了如何使用此运算符
numbers = Observable.from([1, 2, 3, 4, 5]); println("all even?" ) numbers.all({ 0 == (it % 2) }).subscribe({ println(it); }); println("all positive?"); numbers.all({ 0 < it }).subscribe({ println(it); });
all even? false all positive? true
all(Func1)
RxJava 1.x 将此运算符实现为 all
。它默认情况下不会在任何特定 调度器 上运行。
all(Func1)
RxJava 2.x 将此运算符实现为 all
。它默认情况下不会在任何特定 调度器 上运行。
all(Predicate)
RxJS 将此运算符实现为 every
。以下示例展示了如何使用此运算符
var source = Rx.Observable.of(1,2,3,4,5) .every(function (x) { return x < 6; }); 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
every
存在于以下发行版中
rx.all.js
rx.all.compat.js
rx.aggregates.js
它需要以下发行版之一
rx.js
rx.compat.js
rx.lite.js
rx.lite.compat.js
还有一个 jortSort
运算符,它对源可观察对象发出的整个项目序列执行测试。如果这些项目按排序顺序发出,则在源可观察对象成功完成时,从 jortSort
返回的可观察对象将发出 true
然后完成。如果源可观察对象发出的任何项目超出排序顺序,则在源可观察对象成功完成时,从 jortSort
返回的可观察对象将发出 false
然后完成。
还有一个 jortSortUntil
运算符。它不会像 jortSort
那样等待源可观察对象完成以评估其序列的有序性,而是等待第二个可观察对象发出项目来执行此操作。
var source = Rx.Observable.of(1,2,3,4) // already sorted .jortSort(); var subscription = source.subscribe( function (x) { console.log('Next: %s', x); }, function (e) { console.log('Error: %s', e); }, function ( ) { console.log('Completed'); });
Next: true Completed
var source = Rx.Observable.of(3,1,2,4) // not sorted .jortSort(); var subscription = source.subscribe( function (x) { console.log('Next: %s', x); }, function (e) { console.log('Error: %s', e); }, function ( ) { console.log('Completed'); });
Next: false Completed
var just = Rx.helpers.just; var source = Rx.Observable.of(1,2,3,4) // already sorted .flatmap(function (x) { return Rx.Observable.timer(1000).map(just(x)); }).jortSortUntil(Rx.Observable.timer(3000); var subscription = source.subscribe( function (x) { console.log('Next: %s', x); }, function (e) { console.log('Error: %s', e); }, function ( ) { console.log('Completed'); });
Next: true Completed
var just = Rx.helpers.just; var source = Rx.Observable.of(3,1,2,4) // not sorted .flatmap(function (x) { return Rx.Observable.timer(1000).map(just(x)); }).jortSortUntil(Rx.Observable.timer(3000); var subscription = source.subscribe( function (x) { console.log('Next: %s', x); }, function (e) { console.log('Error: %s', e); }, function ( ) { console.log('Completed'); });
Next: false Completed
jortSort
和 jortSortUntil
存在于以下发行版中
rx.sorting.js
它们需要以下发行版之一
rx.js
rx.compat.js
rx.lite.js
rx.lite.compat.js
待定
待定
待定