0

我将可拖动组件的实现从 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 ,可以从文档中观察到,所以我的直觉告诉我在这种情况下鼠标向上是不可避免的,我错了吗?如果您有一些想法,这个实现可能有什么问题,请告诉我,谢谢!

4

0 回答 0