Я борюсь с графом, состоящим из узлов и ссылок в JointJS.
Я хочу предотвратить создание определенных ссылок между узлами на основе некоторых правил (например, чтобы избежать циклов).
Для этого я реализовал некоторые проверки внутри свойства validateConnection моей статьи.
Проблема в том, что эти проверки могут выполняться некоторое время, в общем случае большее, чем частота, с которой выполняется функция validateConnection (то есть каждый раз, когда мышь меняет положение).
Поэтому я подумал о том, чтобы дождаться новой проверки, пока предыдущая не будет завершена. К сожалению, таким образом на решение сильно влияют проблемы взаимоблокировки.
Итак, моя последняя идея — отменить дребезг функции проверки. Но я все еще не на 100% удовлетворен. Действительно, мне нужно, чтобы функция проверки была оценена полностью, и чтобы свойство validateConnection устанавливалось в конце этой проверки.
Там у вас есть код:
validateConnection: _.debounce(function(cellViewS, magnetS, cellViewT, magnetT, end, linkView) {
if(checkTopologicalRules())
return true;
else
return false;
},100),
snapLinks: { radius: 35 }