Rxjs 如何在switchMap内部使用管道
这是代码 我有钮扣。当按钮被快速点击几次时,我只想在最后一次点击后2秒显示一次“yayy” 这是我的尝试,yayy从未出现过Rxjs 如何在switchMap内部使用管道,rxjs,ngrx,Rxjs,Ngrx,这是代码 我有钮扣。当按钮被快速点击几次时,我只想在最后一次点击后2秒显示一次“yayy” 这是我的尝试,yayy从未出现过 import { map, switchMap, delay, tap, mapTo } from "rxjs/operators"; import { of, fromEvent } from "rxjs"; console.log("==================START================="); const click1 = fromEvent
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));
我必须使用开关地图。(我不能使用debounceTime或ThrottleTime)
应该是您所需要的全部。of()
不会发出任何next
通知,只会完成。因此,您可以使用of(null)(或任何值)的,它将正确地发出一个next
。
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));
switchMapTo(timer(2000).pipe(mapTo("yayyyy")))