У меня есть поток чисел, которые увеличиваются на постоянную величину, которую я хочу выделить. Учитывая постоянную выборку interval
, я хочу буферизовать поток до тех пор, пока разница между первым и последним буферным значением не станет больше или равна interval
. Затем он генерирует этот массив, так что он похож на оператор buffer .
Я искал различные операторы rxjs, но не могу понять, как заставить это работать. Оператор bufferUntil
был бы идеальным, но, кажется, не существует. Как я могу это реализовать?
Например:
const interval = 15;
//example stream would be: 5, 10 , 15, 20, 25, 30..
Observable.pipe(
bufferUntil(bufferedArray => {
let last = bufferedArray.length - 1;
return (bufferedArray[last] - bufferedArray[0] >= interval);
})
).subscribe(x => console.log(x));
//With an expected output of [5, 10, 15, 20], [ 25, 30, 35, 40],..