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

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”?(不关闭订阅)


慕容708150
浏览 186回答 3
3回答

茅侃侃

因此,对于鼠标进入和离开,您正在寻找debounceTime例如:const observable = new BehaviorSubject(0);observable&nbsp; .pipe(debounceTime(500))&nbsp;.subscribe(console.log);observable.next(1),observable.next(2);setTimeout(() => observable.next(3) , 1000)在此示例中,将打印2,在第二个之后打印3。在每个发出的值之后,可观察的将等待500 ms,如果没有新值,它将在订阅中打印,否则它将取消最后一个并重新开始此过程,希望这将解决您的问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript