RxJava 仅在一段时间没有消息时才发布
RxJava publishes only if there is no message for a while
我正在尝试找到一种在 RxJava 或 RxJs 中模拟以下代码的方法。
var timerRef;
run()
run()
function run(){
if(timerRef){
clearTimeout(timerRef);
}
timerRef = setTimeout(function(){alert("hello")}, 1000);
}
基本上,一旦我收到发出的消息,我想等待一段时间,确保没有消息到来,如果有,取消当前消息并重复等待新消息,如果没有通过它订阅方法。
我知道,当前消息不应该知道发送到管道的前一个或下一个消息,但我该如何实现呢?
听起来像 debounceTime
运算符是您的选择。在这里,我将 运行() 替换为文档点击事件
import { fromEvent } from 'rxjs';
import { debounceTime, map } from 'rxjs/operators';
const source = fromEvent(document, 'click')
source.pipe(
debounceTime(3000)
)
.subscribe(console.log);
我正在尝试找到一种在 RxJava 或 RxJs 中模拟以下代码的方法。
var timerRef;
run()
run()
function run(){
if(timerRef){
clearTimeout(timerRef);
}
timerRef = setTimeout(function(){alert("hello")}, 1000);
}
基本上,一旦我收到发出的消息,我想等待一段时间,确保没有消息到来,如果有,取消当前消息并重复等待新消息,如果没有通过它订阅方法。
我知道,当前消息不应该知道发送到管道的前一个或下一个消息,但我该如何实现呢?
听起来像 debounceTime
运算符是您的选择。在这里,我将 运行() 替换为文档点击事件
import { fromEvent } from 'rxjs';
import { debounceTime, map } from 'rxjs/operators';
const source = fromEvent(document, 'click')
source.pipe(
debounceTime(3000)
)
.subscribe(console.log);