为了账号安全,请及时绑定邮箱和手机立即绑定

如果相同的可观察物发出,则取消延迟

如果相同的可观察物发出,则取消延迟

慕容708150 2021-05-05 13:09:57
const observable = new rxjs.BehaviorSubject(0);observable.subscribe(v => console.log(v));rxjs  .of(1)  .pipe(rxjs.operators.delay(500))  .subscribe(v => observable.next(v));  observable.next(2);<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.1/rxjs.umd.js"></script>如您所见,上面的观察对象按顺序发出3个值:0、2、1。当发出值“ 2”时,是否可以取消(或忽略)值“ 1”?(不关闭订阅)
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

因此,对于鼠标进入和离开,您正在寻找debounceTime例如:


const observable = new BehaviorSubject(0);

observable

  .pipe(debounceTime(500))

 .subscribe(console.log);


observable.next(1),

observable.next(2);

setTimeout(() => observable.next(3) , 1000)

在此示例中,将打印2,在第二个之后打印3。在每个发出的值之后,可观察的将等待500 ms,如果没有新值,它将在订阅中打印,否则它将取消最后一个并重新开始此过程,希望这将解决您的问题


查看完整回答
反对 回复 2021-05-13
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信