SequenceEqual
определяет, испускают ли два Observable одинаковую последовательность элементов
Передайте оператору SequenceEqual два Observable, и он сравнит элементы, испускаемые каждым Observable, и возвращаемое Observable будет испускать true только если обе последовательности одинаковы (одинаковые элементы в том же порядке с тем же состоянием завершения).
См. также
Сведения о языке
RxGroovy sequenceEqual
Передайте оператору sequenceEqual два Observable, и он сравнит элементы, испускаемые каждым Observable, а возвращаемое Observable будет испускать true только если обе последовательности завершатся нормально после испускания одинаковой последовательности элементов в том же порядке; в противном случае будет испускать false. Вы можете необязательно передать третий параметр: функцию, которая принимает два элемента и возвращает true , если они равны согласно вашему стандарту.
Пример кода
def firstfour = Observable.from([1, 2, 3, 4]);
def firstfouragain = Observable.from([1, 2, 3, 4]);
def firstfive = Observable.from([1, 2, 3, 4, 5]);
def firstfourscrambled = Observable.from([3, 2, 1, 4]);
println('firstfour == firstfive?');
Observable.sequenceEqual(firstfour, firstfive).subscribe({ println(it); });
println('firstfour == firstfouragain?');
Observable.sequenceEqual(firstfour, firstfouragain).subscribe({ println(it); });
println('firstfour == firstfourscrambled?');
Observable.sequenceEqual(firstfour, firstfourscrambled).subscribe({ println(it); }); firstfour == firstfive? false firstfour == firstfouragain? true firstfour == firstfourscrambled? false
Данный оператор по умолчанию не работает с каким-либо конкретным Планировщиком.
RxJava 1․x sequenceEqual
Передайте оператору sequenceEqual два Observable, и он сравнит элементы, испускаемые каждым Observable, и возвращаемое Observable будет испускать true только если обе последовательности завершатся нормально после испускания одинаковой последовательности элементов в том же порядке; в противном случае будет испускать false. Вы можете необязательно передать третий параметр: функцию, которая принимает два элемента и возвращает true , если они равны согласно вашему стандарту.
Данный оператор по умолчанию не работает с каким-либо конкретным Планировщиком.
RxJS sequenceEqual
В RxJS, sequenceEqual — это метод конкретного экземпляра Observable, поэтому вы передаёте ровно один другой Observable для сравнения с экземпляром. Вы можете необязательно передать второй параметр: функцию, которая принимает два элемента и возвращает true , если они равны согласно вашему стандарту. sequenceEqual возвращает Observable, который будет испускать true , если оба Observable испускают один и тот же набор элементов в том же порядке до завершения, или false в противном случае.
Пример кода
var source1 = Rx.Observable.return(42);
var source2 = Rx.Observable.return(42);
var source = source1.sequenceEqual(source2);
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); }); Next: true Completed
sequenceEqual доступен в каждом из следующих дистрибутивов:
rx.all.jsrx.all.compat.jsrx.aggregates.js
sequenceEqual требует одного из следующих дистрибутивов:
rx.compat.jsrx.lite.jsrx.lite.compat.js
© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/sequenceequal.html