2 回答

TA贡献1836条经验 获得超5个赞
拥有两个具有两种不同职责的可观察对象,然后将它们合并在一起怎么样?
const source = interval(1000);
// buffer values for 4 seconds
const buffered = source.pipe(
buffer(interval(4000)),
filter(x => x.length > 0)
);
const multipleOfFive = source.pipe(
filter(x => x % 5 === 0)
);
const subscribe = merge(buffered, multipleOfFive).subscribe(val => console.log(val));
我不确定您是否还想过滤第一个 observable 中 5 的倍数,但这很容易做到。

TA贡献1813条经验 获得超2个赞
您可以使用multicast将源流拆分为两个,然后使用不同的filter运算符将它们再次合并。
import { of, interval, Subject, merge } from 'rxjs';
import { bufferTime, multicast, filter } from 'rxjs/operators';
const buffered = source.pipe(
multicast(new Subject(), s => merge(
s.pipe(
filter((value: number) => value % 5 === 0),
),
s.pipe(
filter((value: number) => value % 5 !== 0),
bufferTime(4000),
),
))
);
你更新的演示:https : //stackblitz.com/edit/typescript-sbhn8s?file=index.ts
添加回答
举报