有条件地根据来自其他流的值向流中添加去抖动时间
const configuration$ = new Subject().asObservable();
const animation$ = new BehaviorSubject(false).asObservable;
以上内容来自某些服务
configuration$.pipe(debounceTime(CONSTANTS.DEBOUNCE),sample(interval(CONSTANTS.SAMPLE)));
configuration.subscribe(data=> {
// do the stuff;
});
如果animation $具有真实值,则应跳过debounceTime
,sample
。
如何从animation $中提取值并应用逻辑(逻辑)。
只要我能做
configuration$.pipe(
animation$ ?
pipe(debounceTime(CONSTANTS.DEBOUNCE),sample(interval(CONSTANTS.SAMPLE))) :
of
);
答案 0 :(得分:2)
configuration$.pipe(
withLatestFrom(animation$),
filter((stream) => !stream[1]),
// now the rest of the stream will only execute if animation$ emits true
debounceTime(CONSTANTS.DEBOUNCE),
sample(interval(CONSTANTS.SAMPLE)),
map(stream=>stream[0])
);
configuration.subscribe(data=> {
// do the stuff;
});