【发布时间】:2021-07-29 07:25:06
【问题描述】:
我不知道用takeUntil 停止流媒体有多合适。
间隔必须在第一次、第三次等点击按钮时开始发射,并在每第二次、第四次等点击后停止发射。
UPD:此代码的目的是提供一种“秒表”。第一次点击时,它应该从 0 开始并计数 1、2 等。在其他点击时,它应该开始/停止计数。
const justIndex = (_, i) => i;
const isOdd = (x) => x % 2;
const isEven = (x) => !isOdd(x);
const buttonClick$ = fromEvent(buttonEl, "click").pipe(map(justIndex));
const resumeClick$ = buttonClick$.pipe(filter(isEven));
const pauseClick$ = buttonClick$.pipe(filter(isOdd));
const intervalFrom = () =>
interval(500).pipe(
takeUntil(pauseClick$), // wtf this is not working
// takeUntil(resumeClick$), // but this is
);
const resumeInterval$ = resumeClick$.pipe(
switchMap(intervalFrom),
);
【问题讨论】:
标签: javascript rxjs