Это оригинальный код.
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 секунды после последнего нажатия.
Вот моя попытка, yayy никогда не появляется.
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)