Rxjs RxJava仅在暂时没有消息时发布

Rxjs RxJava仅在暂时没有消息时发布,rxjs,rx-java,reactive-programming,reactive,Rxjs,Rx Java,Reactive Programming,Reactive,我正试图找到一种方法来用RxJava或RxJs模拟下面的代码 var timerRef; run() run() function run(){ if(timerRef){ clearTimeout(timerRef); } timerRef = setTimeout(function(){alert("hello")}, 1000); } 基本上,一旦我得到了发出的消息,我想等待一段时间,并确保没有即将到来的消息,如果有,取消当前消息并重复等待新消息,如果没

我正试图找到一种方法来用RxJava或RxJs模拟下面的代码

var timerRef;

run()
run()

function run(){
   if(timerRef){
      clearTimeout(timerRef);
   }
   timerRef = setTimeout(function(){alert("hello")}, 1000);
}
基本上,一旦我得到了发出的消息,我想等待一段时间,并确保没有即将到来的消息,如果有,取消当前消息并重复等待新消息,如果没有传递给subscribe方法


我知道,当前消息不应该知道发送到管道的上一个或下一个消息,但我如何才能实现它?

听起来像是
debounceTime
操作符是您的选择。在这里,我将run()替换为文档单击事件

import { fromEvent } from 'rxjs';
import { debounceTime, map } from 'rxjs/operators';


const source = fromEvent(document, 'click')

source.pipe(
  debounceTime(3000)
)
.subscribe(console.log);