我将可拖动组件的实现从 rxjs5 移动到 6。在测试时,我注意到函数 onDragEnd 偶尔不会被调用。这可能是什么原因?这是代码:
fromEvent(this.ref,"mousedown")
.pipe(
filter(this.inside),
debounceTime(300),
tap((event) => {
this.onDragStart(event);
}),
exhaustMap(() =>
fromEvent(document.body,"mousemove")
.pipe(
takeUntil(
fromEvent(document.body,"mouseup")
.pipe(tap(this.onDragEnd)) // <--- my problem
)
)
)
)
.subscribe(
(event) => {
this.onDragMove(event);
},
this.onError
)
编辑:只是为了澄清我的期望,mousedown 事件应该映射到可观察的(假设我正确理解了排气映射)不应该允许外部可观察再次发射,直到内部可观察完成。我无法理解的是为什么在 20-30 次中没有触发 onDragEnd ,可以从文档中观察到,所以我的直觉告诉我在这种情况下鼠标向上是不可避免的,我错了吗?如果您有一些想法,这个实现可能有什么问题,请告诉我,谢谢!