想象我有这段代码
function sayHi(){
console.log("hi")
}
sayHi();
sayHi();
sayHi();
sayHi();
sayHi();
以上代码将记录hi
5次
但是我想使用debounce
运算符,并且每1秒只记录一次。
我该如何实现?
答案 0 :(得分:0)
关于internal
函数的内容:例如
import { interval } from 'rxjs';
const source = interval(1000).subscribe(val => console.log('hi'));
-----编辑-----
让我们尝试一下:
hi$
将是Subject<void>
,我们将订阅他的控制台内容
hi$.pipe(...).subscribe(() => {
console.log('hi');
});
让我们定义一些函数来调用hi$
主题。可以随时随地调用它。
let fn = () => {
hi$.next();
// ...
}
最后想到的是过滤器console.log强制它每秒仅运行一次。为此,我建议throttle
运营商,debounce
停止呼叫订户一段时间,所以:
hi$.pipe(throttle(1000)).subscribe(() => {
console.log('hi');
});