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
添加回答
舉報