Здравствуйте, написал небольшую библиотеку drag&drop на событиях мыши и столкнулся с проблемой валидации, то есть у каждого draggable и droppable есть свой тип при совпадении которого элемент должен падать в него или возвращаться на исходную позиции. Хочу сделать так, чтобы эту валидацию можно было реализовывать с внешней стороны, не внутри, так как варианты валидаций множество, не только по типу. Возможно как то можно отдавать промис и снаружи его отменять или ресолвить, пока не могу сообразить. Помогите пожалуйста!
А почему именно промис? Валидация планируется асинхронная?
В зависимости от архитектуры вашей библиотеки вы можете дать пользователю возможность прокинуть какую-нибудь функцию в качестве валидатора, которую вы будете выполнять при наступлении какого-либо события, например ondrop. Если хочется семантически окрестить это валидацией, то можно иметь управляемый пользователем массив функций валидаторов или функцию валидатор. В общем сделать можно много чего, пространство для творчества огромное, для какой-то конкретики нужны более определенные требования или ограничения
Kovalsky, да так и сделал, прокинул функцию ondrop в библиотеку, которая возвращает промис, снаружи делаю в ней проверку, внутри промиса и управляю перетаскиванием, разрешаю или отклоняю через resolve/reject. А как синхронно можно сделать?
lavezzi1, нууууу, это очень сложный вопрос. Сложный он в первую очередь потому что я не понимаю зачем там в принципе нужен промис. Ну если у вас получается сделать промисом, то почему бы и нет, юзайте его. На вопрос "как синхронно можно сделать" невозможно ответить не зная архитектуры вашего решения