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,如果没有新值,它将在订阅中打印,否则它将取消最后一个并重新开始此过程,希望这将解决您的问题
添加回答
举报
0/150
提交
取消