这是original代码。
import { map, switchMap, delay, tap, mapTo } from "rxjs/operators";
import { of, fromEvent } from "rxjs";
console.log("==================START=================");
const click1 = fromEvent(document.getElementById("click1"), "click");
const example = click1.pipe(
mapTo("START"),
tap(console.log),
delay(2000),
mapTo("yayyyy")
);
const subscribe = example.subscribe(val => console.log(val));
我有按钮。当快速单击该按钮几次时,我只想显示一次“ yayy”一次,最后一次单击后2秒。
这是我的尝试,没出现。
import { map, switchMap, delay, tap, mapTo } from "rxjs/operators";
import { of, fromEvent } from "rxjs";
console.log("==================START=================");
const click1 = fromEvent(document.getElementById("click1"), "click");
const example = click1.pipe(
mapTo("START"),
tap(console.log),
switchMap(_ =>
of().pipe(
delay(2000),
mapTo("yayyyy")
)
)
);
const subscribe = example.subscribe(val => console.log(val));
我必须使用switchMap。 (我不能使用debounceTime或throtleTime)
答案 0 :(得分:1)
switchMapTo(timer(2000).pipe(mapTo("yayyyy")))
应该满足您的所有需求。