Я переместил реализацию перетаскиваемого компонента с 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 не запускается, это можно наблюдать из документа, так что моя интуиция, говорящая мне, что мышка в этом случае неизбежна, я ошибаюсь?Если у вас есть идеи, что может быть не так с этой реализацией, пожалуйста, дайте мне знать, спасибо!