2 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
擁有兩個(gè)具有兩種不同職責(zé)的可觀察對(duì)象,然后將它們合并在一起怎么樣?
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));
我不確定您是否還想過濾第一個(gè) observable 中 5 的倍數(shù),但這很容易做到。

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用multicast將源流拆分為兩個(gè),然后使用不同的filter運(yùn)算符將它們?cè)俅魏喜ⅰ?/p>
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
添加回答
舉報(bào)